Oversikt over HR-import

Oversikt over meldingsbasert integrasjon med HR-systemer i Cerebrum (Cerebrum.modules.hr_import)

1   Prosess

Cerebrum sin HR-import består av flere, separate moduler i Cerebrum:

Cerebrum.modules.amqp
Meldingskonsumering: oppkobling, oppsett, og lytting til køer ved bruk av protokollen AMQP 0.9.1. Modulen brukes for å lytte etter meldinger for å sette i gang utførelse av forhåndsdefinerte oppgaver (Cerebrum.modules.tasks)
Cerebrum.modules.tasks
Midlertidig lagring av oppgaver i Cerebrum. HR-importen har egne oppgavekøer og logikk for å behandle køer. Den typiske oppgaven er « oppdater ansattnummer N på tidspunkt T ».
Cerebrum.modules.hr_import

Implementasjonen av HR-import.

  • datasource: kommunikasjon med kildesystem
  • mapper: oversetting fra datasource til Cerebrum-data
  • import: oppdatering av ansatt-data i Cerebrum

Den ordinære flyten fra HR-systemet til Cerebrum er:

  1. Melding sendes til meldingsbroker, og havner i Cerebrum sin meldingskø
  2. Meldingskonsument i Cerebrum lytter til meldingskø, og oversetter melding til en eller flere oppgaver i Cerebrum sin task-kø
  3. HR-import prosesserer relevante tasks i Cerebrum sin task-kø.

2   Konfigurasjon

Klient-config
Url og auth-tokens til hvert enkelt DFØ-API.
Mapper-config

Forretningslogikk og oversetting av data fra DFØ til Cerebrum. F.eks. hvilke stillingskategorier som gir tilknytning.

TODO: Dette burde muligens inn i selve mapper-implementasjonen.

Import-config

Skrur sammen implementasjon av import:

  • Valg av klient + konfigurasjon
  • Valg av oversetter + konfigurasjon
  • Valg av kø, regler for prosessering av kø (kø-navn, max antall retries, ...)
  • Valg av import-implementasjon.

Vi har typisk to import-configer - en for prosessering av oppgaver knyttet til endringer på ansatte, og en for endringer på stillinger.

Consumer-config

Cerebrum bruker en consumer som står for oversetting av meldinger til oppgaver. Denne prosesserer alle køer som er relevante for Cerebrum, inkl. f.eks. køer fra Greg.

Denne configen inneholder også config for oversetting av meldinger fra DFØ.

3   Meldingskø

TODO:

  • Om lytting i kø, oversetting til tasks (consumers/consume-tasks.py med en consumer-config)

4   Task-kø

TODO:

  • Om subklasser av Cerebrum.modules.tasks.process.QueueHandler (...no.dfo.tasks, ...no.uio.sap.tasks)
  • Om scripts for å lage manuelle tasks, liste aktuelle tasks (contrib/hr-import/create-task.py, contrib/hr-import/list-tasks.py)
  • Om retries; attempts, backoff, etc...

5   HR-import

TODO:

  • Om prosessering av task-kø (contrib/hr-import/process-tasks.py med en process-config)
  • Om script for å omgå kø og prosessere tasks direkte (TODO: refaktorert contrib/hr_import.py med en process-config)
  • Om selve import-logikken; datasource, mapper, import, etc...
Publisert 8. juni 2022 16:18 - Sist endret 2. des. 2022 10:43