Greg-integrasjon for UiT

Løsningsforslag for Greg-integrasjon i Cerebrum for UiT.

Migrasjon

UiT ønsker selv å ta seg av migrasjon av data fra System-X, og vil gjerne begrense migrasjon til et utvalg aktive gjester (ca. 300 av 8000).

Vi risikerer her en del duplikater for alle ikke-migrerte personer fra System-X som ikke har noe fødselsnummer. UiT ønsker likevel disse tidligere gjestene ikke migreres:

  • Det er ikke veldig sannsynlig at UiT får inn mange tidligere gjester på nytt
  • Integrasjonen skal ikke kjøre veldig lenge, men Greg skal fortsatt brukes etter at integrasjonen stenges ned. Om vi ender opp med en del duplikater, så vil disse ha begrenset varighet.
  • UiT ønsker heller å håndtere duplikater enn å overføre masse gammel personinformasjon til Greg.

Integrasjon

Integrasjonen vil i korte steg bestå av:

  1. Meldingskonsument: Tar imot meldinger fra Greg, og oppretter oppgave (Task) for import av person.

  2. Person-import: Går periodisk (hyppig - ca hvert 5. minutt?) gjennom import-oppgaver, oppdaterer personinformasjon i Cerebrum basert på person-informasjon i Greg.

    Ved endring på personobjekt i Cerebrum vil den også opprette en oppgave for oppdatering av brukerkonto.

  3. Brukerkonto-automatikk: Går periodisk (hyppig - hvert 10. minutt?) gjennom brukerkonto-oppgaver, og sørger for å gjøre tilsvarende endringer som process_systemx.py. Dette inkluderer oppretting og gjen-oppretting av brukerkonto, samt legge til spreads, expire_date, spread_expire, etc...

    Dersom en brukerkonto (gjen-)opprettes, vil vi også opprette en oppgave for varsel til gjest.

  4. Varsel-automatikk: Går periodisk (hyppig - hvert 5. minutt?) gjennom varsel-oppgaver, og sender informasjon om (ny) brukerkonto til den aktuelle gjesten.

Arbeidsoppgaver

En oversikt over de store oppgavene som må gjøres/implementeres for å få på plass integrasjon mellom Greg og Cerebrum som beskrevet.

Org-enhenter

UiT kommer (i alle fall inntil videre) å bruke stedkoder som ID for organisasjonsenheter i Greg. Ved mapping av tilknytning vil vi måtte finne hvilken stedkode en rolle i Greg hører hjemme hos, og dette vil måtte gjøres ved hjelp av stedkode.

Den enkleste måten å gjøre dette på, er å legge til stedkoder som ekstern-id, slik at vi kan bruke eksisterende logikk for OU-matching, og kun trenger å tilpasse mapper til å hente ut stedkode fra org-enhet.

  1. Lage en ekstern-id av type stedkode (location code)
  2. Utvide import_OU.py til å også legge inn stedkoder som ekstern-id av denne nye typen.

Person-import

UiT trenger i hovedsak to tilpasninger i Greg-import:

  1. UiT trenger en egen mapper for tilpasninger i hvilken Greg-informasjon som benyttes. F.eks. må vi hente ut stedkode fra roller, og privat e-postadresse fra kontaktinformasjon for gjester.
  2. UiT trenger en egen importer slik at det kan gjøres et par ekstra steg ved import, oppdatering og avvikling av gjester.

Dette betyr at vi må:

  1. Gjøre eksisterende Greg-import konfigurerbar, slik at ulike implementasjoner/subklasser av mapper og importer kan benyttes.
  2. Lage en tilpasset Greg-mapper.
  3. Oppdatere eksisterende import-metoder til å gi informasjon om utførte endringer, slik at subklasser kan gjøre ulike avgjørelser basert på hva felles-importen utfører.
  4. Lage egen import-subklasse som oppretter oppgaver ved endring på person for brukerkonto-automatikk.

Brukerkonto-automatikk

Vi må ha en egen kø for kjøring av brukerkonto-automatikk for gjester fra Greg. Planen er at brukerkonto-automatikk for en gitt gjest kjører automatisk dersom person-import utfører endringer på gjesten.

Vi må:

  1. Re-implementere eksisterende brukeroppretting for System-X, men da som funksjoner som kan hente data fra Tasks, og utføre (gjen-)oppretting og oppdatering av brukerkonto-informasjon.
  2. Lage script som går gjennom tasks, og utfører brukerkonto-automatikk for hver gjest som har en slik task.
  3. I brukerkonto-automatikk: Opprette tasks for utsending av varsel dersom brukerkonto opprettes eller gjenopprettes av automatikken.

Utløpsdato

Vi ser ikke lenger utløpsdato fra Greg / siste tilknytning i brukerkonto-automatikk. Må evt. legge inn uløpsdato (eller nok informasjon til å hente ut utløpsdato) i Task.

Logikk for utløpsdato kan være lik som System-X.

Spreads

Vi får ikke noe liste av spreads fra Greg. Vi må heller lage logikk som ser på tilknytning og tilknytningsstatus, eller på gjesterolle, og velger et sett spreads ut fra dette. Hvis man skal se på rolle, må dette inkluderes i Task.

Logikk for utløpsdato på spreads kan være lik som System-X.

Notifikasjoner

UiT ønsker å sende varsel til gjest dersom en brukerkonto opprettes eller gjen-opprettes.

Vi må lage et script som går gjennom tasks for varsling av gjester, og sender e-post og/eller SMS til gjesten med informasjon.

Av fhl
Publisert 29. nov. 2022 11:17 - Sist endret 1. des. 2022 11:09