...
Integrasjon dokumentasjon: Begrunnelse i WISEflow (Under arbeid)
Inc drawio | ||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
...
Initiering av flyt | Poll-request | |
---|---|---|
Flyt møsnter | Halveis synkron | |
Bruk av meldingskø | Ja, Kafka; MeldingQ (Sikt egen melding-kø system basert på MongoDb, i.e. DocumentDb) |
|
Open API | Nei | |
IntArk | Ikke brukt |
...
System | Data | Brukt API (endepunkter) | |||
---|---|---|---|---|---|
Config-databasen | Finner | configDB.orgs | |||
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-Digex | Henter ut en liste (en json-liste) over begrunnelsesforespørsler som har blitt opprettet eller endret siden oppgitt tidspunkt basert på | GET: /eksamen/begrunnelse/{examSystem} URL for test: https://fs-test.uio.no/eksamen/begrunnelse/<examSystem>?institusjonsnr=...&siden=...& https://www.fellesstudentsystem.no/brukersider/teknisk/fsws-dok/rest/digitaleksamen.html | |||
FS-Digex | Henter begrunnelser for en gitt eksamen basert på | GET: /eksamen/begrunnelser/{examSystem}/{examId} URL for test: https://fs-test.uio.no/eksamen/begrunnelser/{examSystem}/{examId} https://www.fellesstudentsystem.no/brukersider/teknisk/fsws-dok/rest/digitaleksamen.html | |||
FS-Digex | Registrerer | POST: /eksamen/begrunnelser/{examSystem} URL for test: https://fs-test.uio.no/eksamen/begrunnelser/<examSystem> | |||
LaaS | Registrerer en indeks | do Index | |||
Mongo-databasen | Finner alle dokumenter i databasen ( | Find documents i oai.KlageBegrunnelseEnvs kolleksjonen | |||
Oai-databasen | legger auditInfoMap log til databasen | oai-addAuditLog | |||
Oai-databasen | Henter aktive institusjoner med aktiv klage- og begrunnelse-status som tilsvarer | oai.KlageBegrunnelseEnvs | |||
Oai-databasen | Sender | ‘returnTrueAndAddToDatabaseIfNotInDatabase’ i oai.kafkaMessages | Oai-databasen | Henter dokumenter som ikke ble behandlet ( | oai.LastAudit |
Slack | Sender feilmeldinger (inkludert også data på | Slack-kanalen (mule-prod) | |||
WISEflow | Returnerer informasjon om karakterbegrunnelsen (av gitt | GET: /flow/{flowId}/explanation/request/{explanationRequestId} | |||
WISEflow | Oppdater synligheten til en karakterbegrunnelse (av gitt | PATCH: /flow/{flowId}/explanation/request/{explanationRequestId} | |||
WISEflow | Returnerer en liste ( | GET: /license/sis/flows/{sisCode} | |||
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} | |||
WISEflow | Returnerer grunnleggende informasjon ( | GET: /flow/{flowId}/participants | |||
WISEflow | Hvis den er aktivert på flyten (av gitt | POST: /flow/{flowId}/explanation/request |
...
Behandlingstid/responstid og volum
Klage-beg-dispatcher
volum
...
WISEflow-begrunnelse
Behandlingstid/responstid: ca.
6s2s
Frekvens:
2-minutter poll timeout for manuelt triggering og 120-minutters tidsplaner for faste frekvenser (KlageDen nye meldingssystemet (meldingQ) kjører uten forsinkelse på meldingskøen – lytteren til køen tar meldinger én etter én og starter behandlingen umiddelbart (fra webhooks, klage-beg-dispatcher og digex)
, HTTPS-‘listener’ repeterbar fillagerstrøm for datastrømmestrategi (Inspera-webhook), og 2-minutter poll timeout for Apache-Kafka forbruk for begrunnelse og 1-minutt poll timeout for Apache-Kafka forbruk for begrunnelse-svar (WISEflow-begrunnelse). Hver melding hentes direkte fra databasen, prosesseres, og status oppdateres deretter til enten ‘processed’ eller ‘failed’ i samme database-kolleksjon.
Volum (målt:
): gj.sn. ca.
28k hits2k hits (i.e. “correlationId“) 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 (https://dbapp.de-c1.eu1.cloudhub.io/). Det er også utarbeidet mulighet for at enkelt personer ved institusjonen kan melde seg på for mottak av feilmeldinger på epost daglig (“Jeg vil ha e-post varsling”-knappe). Videre har vi overvåkning av loggene via Humio for å fange opp feil-situasjoner utenfor institusjonens virkeområde.
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 igjenda-køene kun har én parallell forbruker ('queue-listener');
Hva skjer med ufullstendige meldinger?
De vil feile og det vil vi oppdage i loggene og kan ta aksjon basert på detMeldinger med status ‘failed’ (opptil 5 ganger) eller ‘processing’ (med 10 minutters forsinkelse for å sikre at meldingen ikke allerede behandles) blir hentet fra kolleksjonen igjen i grupper på opptil 100, og behandlet i samme flyt.
Meldingssystemet bruker ‘manual’ protokoll for håndtering av bekreftelse, som betyr at prosessen fullføres med en endelig status ‘failed’ eller ‘processed’ for hver melding etter fullført behandling. Ingen meldinger skal ha status ‘processing’ eller ‘enqueued’ lengre enn forventet behandlingstid.
Inneholder meldingene sensitive 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 personopplysningerifølge definisjonen på sensitive personopplysninger hos Sikt (Sikt Personvernhåndbok) kan vi konstatere at det ikke forekommer behandling eller overføring av slike data i MuleSoft-plattformen.
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 (slik at oppgaver som ikke skal være offentlige, arkiveres slik at de blir offentlig synlige)