Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents
minLevel1
maxLevel7
printablefalse

...

Innledning

  • Grovt om hva denne integrasjonen er fra hvor / Til hvor?

Bakgrunn

  • Litt om grunnen til integrasjonen. Hva for en behov dekkes av integrasjonen.

Interessenter

  • Hvem er ansvarlig for datakommunikasjonen? Hvem bestilte dette og betaler for at utvekslingenpågår?

Brukerhistorie (gjerne sekvensdiagram) ?

...

Dette er en integrasjon for arkivering av eksamensoppgaver og veiledninger.

Til arkivering, benyttes p360-arkiv-appen

Nøkkel info

Initiesering av flyt

Inspera : Push (Webhooks)
Wiseflow : Poll-request

Flyt møsnter

Halveis synkron

Den delen som leser inn fra Inspera/Wiseflow er en egen prosess 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 Leganto, og publiserer sessionName, orgShortName og hashedInputProperties fra FS

Open API

Nei

IntArk

Ikke brukt

Oversikt

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. Kostandene deles derfor mellom disse 2.

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

Brukerhistorie

  • ??

Systemer/tjenester

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

  • Hvilken kø-mekanisme brukes evt.?

  • Om Int-ark komponenter er brukt og eventuelt hvilke deler

Data

  • Hvilke data utveksles?  Alle attributter som utveksles?

Samhandlingsmønster

  • Hva driver utvekslingen? Request eller Push

  • Er utvekslingen synkron eller asynkron?

Om involverte API

  • Brukte API endepunkter

Tilgangsstyring og logging

  • Hva logges?

  • Eventuelle tilgangstyring

Forretningsregler

  • Forretningslogikken i integrasjonen. Feks. Bare dokumenter med status X leses etter Y antall dager osv …

Behandlingstid/responstid og volum

  • Hva er antallet meldinger pr. døgn i denne forbindelsen (Min, Avg, Max)Tabellen under tar for seg BARE

System

Data

Brukt API (endepunkter)

Config-databasen

Henter fs-inst-id basert på orgShortName

MongoDb

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

SFTP

module

do Index

Amazon S3

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

https://docs.safespring.com/storage/generalinfo/

WISEflow

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

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

https://europe-apidocs.wiseflow.net/

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}

https://europe-apidocs.wiseflow.net/

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, vil : Inspera vite om det og sende dem på nytt. Wiseflow: er basert på polling, så vi kan alltid polle igjen

  • Hva skjer med ufullstendinge 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) . F.eks : Oppgavene som aldri vil publiseres, eller Oppgaver som ikke skal publiseres, publiseres.

...

    • Oppgavene ikke arkiveres (miste meldinger)

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

    • Oppgaver arkiveres med feil tilganger (slik at oppgaver som ikke skal være offentlige, arkiveres slik at de blir offentlig synlige)

Kommentarer