Arkivering av eksamensoppgaver og veiledning


Innledning

Dette er en integrasjon for arkivering av eksamensoppgaver og veiledninger.

Til arkivering benyttes p360-arkiv-appen

Integsasjon lenken:

Også studentsynk-integrasjon dokumentasjon mellom FS og Public360 finnes på:

 

Nøkkel info

Initiesering av flyt

scheduled Polling

4 g/år, i starten av semester og ved slutten (for kjøring for semesteret før)

Flyt mønster

semi synkron/batch

Den delen som leser inn fra FS og den delen som leser fra Inspera/WISEflow er egne prosesser og er fra-koblet fra resten. Men den delen som arkiverer går synkront til arkiv-tjenesten

Bruk av meldingskø

Ja, Kafka

Mottar/forbruker webhook-meldinger som skal omdirigeres til eksamenssystemer (Inspera/WISEflow);

Publiserer orgId, p360Instance, examSysInstance, examSys, vurderingsId, emneNavn, SaksbehandlersEpost og SakProsjekt fra FS;

Og publiserer hovedfil, vedlegg, org, instance, vurderingsId, emneNavn, emneKode, emneTitle, SaksbehandlersEpost og SakProsjekttil til Arkiv P360.

Open API

Nei

 

IntArk

Ikke brukt

 

Bakgrunn

Arkivering av eksamensoppgaver og veiledninger er et krav som alle institusjoner skal oppfylle. Oppdraget og bestillingen kommer fra Arbeidsgruppen for dokumentasjonsforvaltning.

Interessenter

Dette er en leveranse til både Arkiv og Digital-eksamen. Kostnadene deles derfor mellom disse 2.

Arkiv har produsert og bestemt den såkalte mappinsdokument som definerer hvordan oppgavene skal arkiveres i arkiv-systemet.

Brukerhistorie

Prøve er gjennomført og ferdigstilt i eksamenssystem, og klar til arkivering. Integrasjon poller FS for alle vurderinger foregående semester og søker opp oppgavesett og vedlegg samt veiledninger i eksamenssystemene (WISEflow og Inspera), og arkiverer disse i arkivsystemet Public360.

Systemer/tjenester

Detaljert liste av alle innvolverte systemer/tjenester Hva utveksler data? Fra hvor / Til hvor?

Tabellen under tar for seg BARE

System

Data

Brukt API (endepunkter)

System

Data

Brukt API (endepunkter)

Config-databasen

Get Slack blacklist

configDB.slack-blacklists

Config-databasen

Get single org

 

Config-databasen

Get orgs having exam archiving

Liste over alle institusjoner med ArkivEksamenOppgaver.<env>.aktiv satt til true

utgangen inkluderer: FsId, ShortName, ArkivEksamenOppgaver (active, P360Instance, ExamSysInstance, SaksbehandlersEpost, SakProsjek og DokProsjekt) og ExamSystem

MongoDb

Config-databasen

set ArkivEksamenOppgaver

MongoDb

FS (digex-api)

Henter eksamen list info basert på institusjon nummer, eksamensystemet og til/fra dato

https://www.fellesstudentsystem.no/brukersider/teknisk/fsws-dok/rest/digitaleksamen.html#digeks_liste

GET: /eksamen/liste/

FS API

Henter emne basert på institusjon (fsId) og emne id

https://api.fellesstudentsystem.no/swagger.html#/koder/getEmner

Inspera

Henter informasjon om en bruker basert på en ekstern bruker-ID (external-id) og instance (Get test by external id)

GET: /users/external/

https://api.inspera.no/apidoc/#/users/getExternalUserInfo

Inspera

Henter alle relevante metadata for testen gitt av test-id og instance (Get test by id). Dette vil også inkludere alle relevante kandidatmetadata.

GET: /test/

https://api.inspera.no/apidoc/#/test/getTestMetadata

Inspera

Dette vil se ut som en pdf generert gjennom Inspera-frontend (basert på test-id og instance), med følgende innstillinger: "No cover, documents autoscored questions, cover, correct answers, max score and large interactions included, page breaks between questions turned on" (Get assessment pdf url).

GET: /test/{testId}/assessment/pdf

https://api.inspera.no/apidoc/#/test/schedulePDFExport

Slack

Sender feilmeldinger (inkludert også data på module-idog submodul, organisasjons shortName og orgId, examSystem, examSysInstance, vurdId, fetchFsListDates, decodedFsTestId og filesToArchive)

Slack-kanalen (mule-prod)

OAI-databasen

legger auditInfoMap log til databasen

oai-GenAudit

LaaS

module

do Index

Amazon S3

Laster opp filer (med filnavn hentes fra Inspera/WISEflow) til mapper ('exams-arkiv' bucket).

 

 

WISEflow

Henter en liste over flyter med en sisCode som samsvarer med spørringsparameteren.

GET: /license/sis/flows/{sisCode}

WISEflow

Henter grunnleggende informasjon for en gitt flowId som name, type, start og end date man kan bruke til å identifisere flyten.

GET: /flow/{flowId}

WISEflow

Henter tildelingsinformasjon for en gitt flowId. Dette endepunktet returnerer informasjon om alle oppdrag i en gitt flyt.

GET: /flow/{flowId}/{assignments}

WISEflow

Henter tilleggsinnhold for en gitt flowId. Dette kan være filer eller lenker som er tilgjengelig enten som generelt materiale, innhold for deltakelse, innhold for vurdering eller som dedikerte retningslinjer for assessor.

GET: /flow/{flowId}/{content}

Public360

https://unit.atlassian.net/wiki/spaces/IPM/pages/2365751297

Documaster

Tilgangsstyring og logging

  • Integrasjonen loger til Humio med detaljert logging av prosessen.

  • Integrasjonen er knyttet logg-oversikten som vil logge følgende data:

    • submodule

    • examSystem

    • examSysInstance

    • p360Instance

    • orgId

    • vurdId

    • env

    • fetchFsListDates

    • success (true/false)

    • errorMessage (hvis aktuelt)

    • decodedFsTestId

    • filesToArchive

  • Integrasjonen har ikke noe behov for tilgangstyring

Forretningsregler

Behandlingstid/responstid og volum

Integrasjonen ikke tatt til bruker nå; ingen data!

Feilhåndtering, konsekvenser av feil og overordnet risikoanalyse

Generelt vil status og dermed eventuelle feil være synlig og tilgjengelig for institusjonen via logg-oversikten. Det er også utarbeidet mulighet for at enkelt personer ved institusjonen kan melde seg på for mottak av feilmeldinger på epost daglig.

Videre har vi overvåkning av loggene via Humio for å fange opp feil-situasjoner utenfor institusjonens virkeområde, som f.eks. utilgjengelige API endepunkter og bugs i koden.

 

  • Hva skjer ved overload i kø?

    • Det skjer ikke. Men om vi skulle, på grunn av noe feil, ikke motta meldingene fra eksamensystemene så kan vi alltids polle igjen

  • Hva skjer med ufullstendige meldinger?

    • De vil feile og det vil vi oppdage i loggene og kan ta aksjon basert på det.

  • Inneholder meldingene personopplysninger?

    • Merk at det utveksles mange “meldinger” mellom ulike systemer i løpet av en integrasjon. Melinger fra eksamensystem inneholder ikke noe persondata, men data vi henter fra FS basert på de meldingene gjør det. Filene vi arkiverer (som kommer fra eksamensystemene) kan også potensielt inneholde personopplysninger.

  • Noe om viktige feil/situasjoner som må passes ekstra på (som kan ha stor konsekvens) :

    • Oppgavene ikke arkiveres (miste meldinger)

    • Oppgaver arkiveres med feil info. (feiltolking eller feil logikk)

    • Oppgaver arkiveres med feil tilganger

Kommentarer

  • WISEflow FLOWmulti-oppgaver blir, av arkivtekniske årsaker, arkivert som xml. I enkelte tilfeller går det ikke å omkode og oppgavesettet blir ikke arkivert. WISEflow har en sak på å levere disse oppgavesettene i en arkiverbar form.

  • Inspera mangler et godt endepunkt for å få tak i veiledninger.