Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

teknisk dokumentasjon (i WISEflow): Automatisk opprettelse av prøver i WISEflow (under arbeid - åpen)

Inc drawio
zoom1
simple0
pageIdcustContentId23009361953417112623
custContentIdpageId26400196662302771203
lbox1
diagramDisplayNameGenerell dokumentasjon 202302023DigEks.drawio
hiResPreview0
baseUrlhttps://unitsikt.atlassian.net/wiki
imgPageId2305982467
diagramNameGenerell dokumentasjon 202302023DigEks.drawioimgPageId2302705702
pCenter0
aspectWZL_C7zIUOqVIDdk2fCY MtUSYfcKr3AQ57z7wqSJOOK5al9Ag-Kyg9dfiho5 1
width16671653
includedDiagram1
aspectHashae8b3dd20e5b46e945b69f512b9ff961bb0a86fe6df9d94baa863af28665b1af1aaeb051fcd39e57
linksauto
tbstyletop
height11271101

Nøkkel info

Initiering av flyt

Poller FSWS hver 6. time for endringer i vurderinger siste 3 dager.

Flyt mønster

Halveis synkron

Den delen som leser inn fra FS er en egen prosess og er frakoblet den delen som sender til Inspera. Hver del er synkron for seg.

Bruk av meldingskø

Ja

, Kafka

Følgende felter sendes over fra FS-delen og til Inspera-delen:

examInfo prøvedata fra FS

shortName, fsID institusjonsinfo fra IOM sin configDB

insperaInstance spesifiserer hvilken Inspera som berøres

doPOST flagg for å bestemme om det skal skrives til Inspera. For bruk til utvikling

;

MeldingQ (Sikt egen melding-kø system basert på MongoDb, i.e. DocumentDb)

Merk: Meldingssystemet opererer med en maksimal samtidighet på “1” og er satt til “immediate” modus. Dette innebærer at systemet ikke venter på en bekreftelse eller avvisning, verken fra applikasjonen selv eller fra andre systemer, siden dette er et internt meldingssystem. Ettersom meldingssystemet ikke kan aksesseres eksternt, vurderes det heller ikke som nødvendig å utdype dette ytterligere i applikasjonsdokumentasjonen.

Open API

Nei

IntArk

Kan brukes etter ønske, for å aksessere Inspera gjennom Gravitee. Meldingskø ikke implementert.

Institusjonen bestemmer selv og gir oss beskjed om integrasjonen skal kontakte Inspera-instansen direkte eller om integrasjonen skal gå gjennom Gravitee

Bakgrunn

  • Hver eneste prøve som skal holdes i Inspera må opprettes manuelt i dag. Dette gjøres ved at det for hver prøve hentes ut alle prøver fra FS, og så velges det fra listen. Listen genereres hver gang og dette tar lang tid per prøve, avhengig av antall vurderinger på institusjonen. Dette er enormt tidkrevende for saksbehandler, og denne integrasjonen vil lette dette arbeidet.

...

  • Vurdering gjøres klar i FS, med kandidater oppmeldt

  • Eksamensansvarlige har fått laget en bruker i Inspera

  • Integrasjonen plukker opp ny prøve fra FS og oppretter i Inspera

  • Eksamensansvarlig logger seg på Inspera, finner prøven opprettet og kan fortsette med populering av oppgavesett, og annet.

  • FS-synken sørger for at prøven holdes synkronisert med kandidater, sensorer og kommisjoner.

Systemer/tjenester

System

Data

Brukt API (endepunkter)

Config-databasen

Finner data (shortName, fsId, insperaInstance, stedkodefilter, startYear) for alle institusjoner som har aktivert AutoPostExam i databasen for gjeldende miljø.

configDB.orgs

Config-databasen

Hvis prosessen var mislykket (success er False), henter den en 'blacklist' for tjenesten for å bestemme om det skal registreres som en Slack-feilmelding i kanalen.

NB: Modulen hjelper utviklere og testere av systemet; sluttbrukeren vil ikke legge merke til det.

configDB.slack-blacklists

FS-Digex

Henter ut en json-liste basert på institutionsnr, datofra, datotil, sistEndret og examSystem over alle vurderinger som har blitt endret siden oppgitt tidspunkt.

GET: /eksamen/liste?institusjonsnr={examSystem}&datofra={datofra}&datotil={datotil}&eksamenssystem=INSPERA&sistEndret={sistEndret}

URL for test: https://fs-test.uio.no/eksamen/liste?

URL for prod: https://fsws.usit.no/eksamen?liste?…

FS-Digex

Henter full info for en gitt eksamen basert på examSystem og examId.

GET: /eksamen/{examSystem}/{examId}

URL for test: https://fs-test.uio.no/eksamen/{examSystem}/{examId}
URL for prod: https://fsws.usit.no/eksamen/{examSystem}/{examId}

LaaS

Registrerer auditInfoMap (se under) i Humio (for å innta og beholde strømmedata)

do Index

Oai-databasen

legger auditInfoMap log (se under) til databasen

oai-addAuditLog

Slack

Sender feilmeldinger (inkludert også auditInfoMap, se under). Det stemmer overens med Config-databasen (configDB.slack-blacklists).

Slack-kanalen (mule-prod)

Inspera

Spør insperaInstance om bruker med idsys:FEIDE userid:brukernavn@domene.no finnes i inspera. Returnerer info om bruker finnes som bruker i Inspera.

GET: /users/external/{idsys}/{userid}

Inspera

Søk i insperaInstance etter prøve med ExternalID (base64 hash som definerer FS-vurdering: <institusjonsnr>||<emnekode>||<versjonskode>||<vurdkombkode>||<årstall>||<vurdtidkode>)

POST: /test/search

BODY (json):
{"query": {
"filters": {
externalId": {ExternalID}
}
}
}
}

Inspera

Spør insperaInstance om data for prøve med insperaId. Returnerer id (assesmentRunId)og om prøven er ekstern (tilkoblet FS) (result.externalTestInfo.externalTest)

GET: /test/{insperaId}

Inspera

Oppretter ny prøve i insperaInstance koblet til FS

Payload består av generelle prøvedata samt hovedansvarlige som allerede har brukere.

externalTestId <base64hash>, variant <vurdkombkode>, title <emnetittel>, startTime, endTime, duration, externalTest true, externalSystem "FS", authenticationSystem "FEIDE", subjectCode, versionCode, evaluationType <vurderingsform>, timeframeCode <tid.reell>, institution <institusjonsnr>, gradingDueDate, contributors <eksamensansvarlige>

POST: ​/test

Inspera

Oppdaterer prøve funnet på insperaInstance tilkoblet FS

Se over for felter.

POST: /test/{insperaId}​

Tilgangsstyring og logging

...