Innledning
Denne integrasjonen sørger for å ektrahere oppgavetittel for Master og Bachelor oppgavene og registrere dem. Tidligere har studenten selv måtte sørge for å registrere oppgavetittel direkte via studweb noe som kunne føre til dårlig og uriktig data kvalitet.
Nøkkel info
Initiering av flyt | Poll-request |
|
---|---|---|
Flyt møsnter | Halveis synkron |
|
Bruk av meldingskø | Ja, Kafka |
|
Open API | Nei |
|
IntArk | Ikke brukt |
|
Bakgrunn
Studenter pleide å skrive tittelen på oppgavene manuelt i Studentweb, men det ble senere besluttet å få prosessen automatisert.
Interessenter
Dette er en leveranse til Digital-eksamen.
Brukerhistorie
Student A leverer bachelor-/masteroppgave i Inspera/Wiseflow, og tittelen på oppgaven overføres automatisk til FS.
Systemer/tjenester
Detaljert liste av alle innvolverte systemer/tjenester Hva utveksler data? Fra hvor / Til hvor?
System | Data | Brukt API (endepunkter) |
---|---|---|
Config-databasen | Finner | configDB.fsIdToOrgShortName |
Config-databasen | Hvis prosessen var mislykket ( NB: Modulen hjelper utviklere og testere av systemet; sluttbrukeren vil ikke legge merke til det. | configDB.slack-blacklists |
FS (gjennom FS-tittel API’et) | Registrerer | URL for test: https://fs-test.uio.no/eksamen/oppgavetittel/{examSystem}/registrer |
Inspera | planlegger og laster ned innlevering av en enkelt kandidat eller gruppe på en test | GET: /candidates/submission/{testId}/{userId} (depreciated) POST: /fileExport/order ( |
Inspera | Henter alle relevante metadata | GET: /test/{testId} |
LaaS | Registrerer en indeks | do Index |
Oai-databasen | Legger auditInfoMap log til databasen | oai-addAuditLog |
Oai-databasen | Henter en repo etter | oai-getRepository |
Slack | Sender feilmeldinger (inkludert også data på | Slack-kanalen (mule-prod) |
WISEflow | Returnerer informasjon om en innlevering ( | GET: /flow/{flowId}/submission/{submissionId} |
WISEflow | Henter opp grunnleggende informasjon for en gitt flyt som navn, type, start- og sluttdato som kan brukes til å identifisere flyten (basert på | GET: /flow/{flowId} |
Tilgangsstyring og logging
Integrasjonen loger til Humio med detaljert logging av prosessen.
Integrasjonen er knyttet logg-oversikten som vil logge følgende data:
assessmentRunId, candidateId, candidateIds, env, errorMessage, examSystem, failedAttempts, flowId, handedInDate, id, inputTopic, instance, isGroup (boolsk), orgId (org), submissionId, success (boolsk), status, testId, timestamp, vurdId (decodedVurdId) og user/groupId
Integrasjonen har ikke noe behov for tilgangstyring
Forretningsregler
Behandlingstid/responstid og volum
Behandlingstid/responstid: ca. 2s
Frekvens: HTTPS-‘listener’ repeterbar fillagerstrøm for datastrømmestrategi (Inspera-webhook) og 2-minutter poll timeout for Apache-Kafka forbruk fra eksamensystemer (fs-tittel-app)
Volum (målt: ): gj.sn. ca. 3k hits daglig
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å e-post daglig. Videre har vi overvåkning av loggene via Humio for å fange opp feil-situasjoner utenfor institusjonens virkeområde.
Hva skjer ved overload i kø?
Webhook-app produserer webhook-meldinger (
timestamp
,org
,instance
,env
ogexamSystem
) mot FS-tittel (2 min. poll timeout). Om vi skulle på grunn av noe feil ikke motta meldingene fra eksamensystemene (Got an unrecoverable exception while running the polling task
, for eksempel), vil Inspera vite om det og sende dem på nytt, og siden WISEflow er basert på polling, så vi kan alltid polle igjen. Fs-tittel forbruker meldinger (event
,contextObjectId
,contextObjectType
,associatedObjectId
,associatedObjectType
,triggeringUserId
,triggeringUserName
,inputTopic
,id
,action
,licenseId
,flowId
,userId
,submissionId
,participantId
,isHandedIn
,callTime
,eventVersion
,sequenceNumber
,timestamp
,org
,instance
,env
,eventName
ogexamSystem
) fra eksamenssystemene gjennom webhook.
Hva skjer med ufullstendige meldinger?
De vil feile og det vil vi oppdage i loggene (de blir registert i en kolleksjon i databasen og feilen blir rapportert i et direktemeldingsprogram) 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 (
contextObjectId
,associatedObjectId
ogassociatedObjectType
).
Det er noen feil vi ikke kan gjøre noe med, vanligvis de som mangler visse data; for eksempel når “kandidaten har ikke levert“, “ingen tittel er oppgitt” eller "Missing x-wiseflow-license-id in headers" (
code:400
). Slike meldinger kommer i en kø for å bli sendt på nytt i opptil fem ganger (med en halvtimes intervall).Noe om viktige feil/situasjoner som må passes ekstra på (som kan ha stor konsekvens):
Feil ved registerering av tittel mot FS: Eksamen ikke funnet for eksamenssystem
Gjentakende ‘timeout' eller 'Bad Gateway’ ( mens en connector prøver å koble til eksamenssystemer (for å hente “test by id; set assessment”, for eksempel) eller databasen
For
"Internal server error, please contact Inspera Support"
tar vi kontakt Inspera support.