Skip to content

Dataplattform: Datakilder og tilgangsstyring

Thomas B. Aschim edited this page Apr 4, 2022 · 21 revisions

Dataplattform har en mengde datakilder som CVPartner, kompetansekartleggingen og UBW for å nevne noen. Dataplattform henter rådata fra disse kildene og klargjør dem for videre konsum av andre tjenester. Hvem som helst kan ikke konsumere data fra Dataplattform -- det kreves nødvendige autoriseringer. Dette dokumentet beskriver autoriseringshierarkiet og datakildene i detalj.

Databeskyttelsesnivåer

De ferdigprosesserte rådataene representeres som strukturerte tabeller vi kan sende spørringer mot. Dataene deles inn i ulike beskyttelsesnivåer. Disse beskyttelsesnivåene refereres til som level-1, level-2 og level-3(, og level-4) (level-4 settes i parantes for å signalisere nytt nivå - som blir innarbeidet). Jo høyere beskyttelsesnivå, jo strengere tilgangsstyring er det for dataene som ligger der. Level-1 er det laveste beskyttelsesnivået, mens level-3(level-4) er det høyeste. Brukere i AWS Cognito tilegnes en gruppe, og gruppen sier noe om hvilke data brukeren kan få tak i. Om en bruker legges til i level-3-gruppen, for eksempel, vil brukeren kunne spørre etter dataene i level-3(level-4), men også dataene i level-2 og level-1. Alle gruppeledere for eksempel skal i Knowit Objectnet ha tilgang til dataene i level-3(level-4) og nedover.

Datakilder

Datakildene for hvert beskyttelsesnivå detaljeres under.

Level-1

Åpne data, som enten er avpersonifisert eller generelle. De implementerte datakildene for dette nivået er Yr, Knowit Labs og Twitter.

Twitter

  • Hentes hver dag.
  • Sjekke hvor omtalt Knowit er på Twitter.
  • Tabeller:
    • twitter_account - info om Knowits twitter-bruker
    • tweet - info om tweets som har noe med Knowit å gjøre, som f.eks Knowit hashtag

Knowit Labs

  • Hentes hver uke.
  • Knowit sin bloggside.
  • Tabeller:
    • knowitlabs_post - info om Knowit Labs-blogginnlegg

Yr

  • Hentes hver dag.
  • Været for Oslo, Lakkegata.
  • Tabeller:
    • yr - detaljert info om været

Level-2

Omfatter flere kategorier. Data som kan inneholde informasjon om personer, men da er det persondata som er offentlig tilgjengelig. Videre er det data som krever tilgangsskontroll i form av API-nøkler eller lignende. Kildene under dette tilgangsnivået er:

UBW Fagtimer

  • Hentes hver uke.
  • Totalt antall fagtimer som brukes hver uke.
  • Tabeller:
    • ubw_fagtimer - fagtimer brukt hver uke

Google Calendar

  • Hentes hver time.
  • Henter eventer fra google calendar.
  • Tabeller:
    • google_event - info om event, hvem som laget det, start- og slutt-tidspunkter, event-kode, om det nå er aktivt og dermed gyldig å stemme på

Salgs-data fra Jira

  • Hentes hver dag.
  • Henter issues fra Jira API.
  • Tabeller:
    • JiraIssueCreated - Hver rad inneholder Jira issue (id) og timestamp for når issuene er opprettet i Jira.
    • JiraIssueUpdated - Hver rad inneholder Jira issue (id) og timestamp for når issuene er oppdatert, samt navn på kunde og status.
  • Navn på kunde burde egentlig vært med i JiraIssueCreated ettersom det finnes når et issue opprettes. Men fra Jira kommer det ikke automatisk med ved opprettelse av issue og derimot blir det lagt manuelt inn i Jira i ettertid.

Slack

  • Aktivitet i Slack og Emoji-stemningen.
  • Tabeller:
    • slack_emoji - emoji type og info om hvor positivt, nøytralt og negativt det anses
    • slack_event - all aktivitet i slack

Github

  • Aktivitet på Knowit sine Github prosjekter.
  • Tabeller:
    • github_commit - commit og brukernavnet til den som committed
    • github_repository - info om repository

Level-3(level-4)

Informasjon som inneholder persondata. I de fleste tilfeller er dette data fra Knowit Objectnets interne fagsystemer. I nåværende versjon av dataplattform er ikke flertallet av disse dataene ikke lagret over lang tid for å sikre retten til å bli glemt.

Google Forms/Sheets

  • En egenutviklet add-on sørge for at vi kan få importert informasjon fra google sheets og forms. I level-3 fordi det er fritekstinput som potensielt kan inneholde persondata.
  • Tabeller:
    • google_forms_data - inneholder brukersvar fra Google Forms-undersøkelser o.l.
    • google_sheets_metadata - informasjon om hvilke Google Sheets-ark som er lastet opp av hvem

Active Directory

  • Basisinformasjon om ansatte i Knowit Objectnet fra Azure Active Directory. Navn, epost, nærmeste leder etc.
  • Tabeller:
    • active_directory - navn, e-post og nærmeste leder for en ansatt
    • ad_number_of_employees - antall ansatte over tid

CVPartner

All informasjon om en bruker som finnes i CVPartner.

Tabeller:

cv_partner_employees

  • Basisdata for en ansatt.
  • Én rad per ansatt.
Kolonne Datatype Har alltid verdi Beskrivelse Eksempeldata
user_id string Unik ID som brukes for å identifisere en ansatt i tabellene for CVPartner. 616d31b6fd94bb11c92ec19a
default_cv_id string Unik ID for den ansattes CV i CVPartner. 616d3345a086861134890d4a
guid string Unik ID som brukes for å identifisere en ansatt i tabeller for bl.a. Active Directory og UBW. b051b402346144a6cdccs...
navn string Navn på den ansatte Ola Nordmann, Kari Nordmann
email string E-postadresse [email protected]
telefon string ⚠️* Telefonnummer 98765432
title string ⚠️* Stillingstittel Systemkonsulent, Utvikler, Designer, Rådgiver *
born_year integer Fødselsår 1968, 1995
nationality string ⚠️* Nasjonalitet Norsk, Svensk, Norwegian *
place_of_residence string ⚠️* Bosted Oslo, Stavanger *
twitter string ⚠️* Fritekstfelt i CVPartner for brukernavn, url el.l for den ansattes twitter-profil *
image_key string Kan være null Filnavn for profilbilde, dersom den ansatte har lastet opp dette i CVPartner. Disse filene hentes samtidig som dataene i denne tabellen, og lagres i AWS. d6e395c...9f1e66.jpg, d6e395c...9f1e66.png, null
link string Mal (template) for linker til nedlasting av CV som fil. Har to placeholdere som må erstattes for at linken skal fungere:
(1) {LANG} – språk: no/int
(2) {FORMAT} – filformat: pdf/word
https://knowit.cvpartner.com/ v1/cvs/download/ 616d31b6fd94bb11c92ec19a/ 616d3345a086861134890d4a/ {LANG}/{FORMAT}/

*Valgfritt fritekst-felt i CVPartner. Kan med andre ord være tomt.

cv_partner_education

  • Utdanning for de ansatte.
  • Én rad for hver utdanning for hver ansatt.
Kolonne Datatype Har alltid verdi Beskrivelse Eksempeldata
user_id string Unik ID som brukes for å identifisere en ansatt i tabellene for CVPartner. 616d31b6fd94bb11c92ec19a
degree string ⚠️ * Oppnådd grad Bachelor Informatikk, Master Programmering og Nettverk *
school string ⚠️ * Skole / universitet NTNU, Universitetet i Bergen, UiO *
description string ⚠️ * Beskrivelse av utdannelsen *
year_from integer ⚠️ ** Årstall da utdannelsen startet 1986, 2002 **
month_from integer ⚠️ ** Måned da utdannelsen startet 1, 8 **
year_to integer ⚠️ ** Årstall da utdannelsen sluttet 1993, 2005 **
month_to integer ⚠️ ** Måned da utdannelsen sluttet 6, 12 **

*Valgfritt fritekst-felt i CVPartner. Kan med andre ord være tomt.
**Valgfritt nummer-felt i CVPartner. Tom verdi er i utgangspunktet -1, men det kan også forekomme 0.

cv_partner_work_experience

  • Arbeidserfaring for en ansatt.
  • Én rad for hvert arbeidsforhold for hver ansatt.
Kolonne Datatype Har alltid verdi Beskrivelse Eksempeldata
user_id string Unik ID som brukes for å identifisere en ansatt i tabellene for CVPartner. 616d31b6fd94bb11c92ec19a
employer string ⚠️ * Arbeidsgiver Knowit Objectnet *
description string ⚠️ * Stilling Systemkonsulent *
long_description string ⚠️ * Beskrivelse av arbeidserfaringen *
year_from integer ⚠️ ** Årstall da arbeidsforholdet startet 2000, 2015 **
month_from integer ⚠️ ** Måned da arbeidsforholdet startet 1, 8 **
year_to integer ⚠️ ** Årstall da arbeidsforholdet sluttet 2005, 2018 **
month_to integer ⚠️ ** Måned da arbeidsforholdet sluttet 6, 12 **

*Valgfritt fritekst-felt i CVPartner. Kan med andre ord være tomt.
**Valgfritt nummer-felt i CVPartner. Tom verdi er i utgangspunktet -1, men det kan også forekomme 0.

cv_partner_project_experience

  • Prosjekterfaring for en ansatt.
  • Én rad for hver deltakelse/periode i hvert prosjekt for hver ansatt.
Kolonne Datatype Har alltid verdi Beskrivelse Eksempeldata
user_id string Unik ID som brukes for å identifisere en ansatt i tabellene for CVPartner. 616d31b6fd94bb11c92ec19a
customer string ⚠️ * Navn på kunde Entur, Skatteetaten *
description string ⚠️ * Navn på prosjektet Team Betjent, Min Side *
long_description string ⚠️ * Prosjektbeskrivelse *
year_from integer ⚠️ ** Årstall da prosjektdeltakelsen startet 2000, 2015 **
month_from integer ⚠️ ** Måned da prosjektdeltakelsen startet 1, 8 **
year_to integer ⚠️ ** Årstall da prosjektdeltakelsen sluttet 2000, 2015 **
month_to integer ⚠️ ** Måned da prosjektdeltakelsen sluttet 1, 8 **
percent_allocated integer ⚠️ ** Stillingsprosent for prosjektdeltakelsen 50, 80, 100 **
industry string ⚠️ * Kundesektor Offentlig, Privat, Rekruttering *
project_experience_skills string ⚠️ Semikolon-separert liste med teknologisk kompetanse (ferdighet) brukt eller tilegnet gjennom prosjektdeltakelsen, dersom dette er lagt inn i CVPartner. Yarn;VS Code;TypeScript;Python
roles string ⚠️ Semikolon-separert liste med roller den ansatte hadde i prosjektet, dersom dette er lagt inn i CVPartner. Frontendutvikler;Backendutvikler

*Valgfritt fritekst-felt i CVPartner. Kan med andre ord være tomt.
**Valgfritt nummer-felt i CVPartner. Tom verdi er i utgangspunktet -1, men det kan også forekomme 0.

cv_partner_languages

  • Språk en ansatt behersker.
  • Én rad for hvert språk for hver ansatt.
Kolonne Datatype Har alltid verdi Beskrivelse Eksempeldata
user_id string Unik ID som brukes for å identifisere en ansatt i tabellene for CVPartner. 616d31b6fd94bb11c92ec19a
name string ⚠️ * Navn på språket Engelsk, Norsk, Norsk - nynorsk *
level string ⚠️ * Ferdighetsnivå for språket Flytende, Grunnleggende, Morsmål *

*Valgfritt fritekst-felt i CVPartner. Kan med andre ord være tomt.

cv_partner_technology_skills

  • Teknologisk kompetanse (ferdigheter) en ansatt innehar.
  • Én rad for hver kategori (gruppering) for hver ansatt.
Kolonne Datatype Har alltid verdi Beskrivelse Eksempeldata
user_id string Unik ID som brukes for å identifisere en ansatt i tabellene for CVPartner. 616d31b6fd94bb11c92ec19a
category string ⚠️ Navn på kategori (gruppering) av teknologiske ferdigheter Systemutvikling, UX Design
technology_skills string ⚠️ Semikolon-separert liste med teknologisk kompetanse (ferdighet) som gjelder for denne kategorien. Yarn;VS Code;TypeScript;Python, Figma;Adobe Photoshop

cv_partner_blogs

  • Blogginnlegg skrevet av ansatte, manuelt lagt inn i CVPartner.
  • Én rad for hvert blogginnlegg for hver ansatt.
Kolonne Datatype Har alltid verdi Beskrivelse Eksempeldata
user_id string Unik ID som brukes for å identifisere en ansatt i tabellene for CVPartner. 616d31b6fd94bb11c92ec19a
month integer ⚠️ ** Årstall for publikasjon av blogginnlegg 2020, 2022 **
year integer ⚠️ ** Måned for publikasjon av blogginnlegg 2, 9 **
url string ⚠️ * URL-adresse til blogginnlegget http://blogg.knowit.no/... *
name string ⚠️ * Tittel på blogginnlegget *
long_description string ⚠️ * Beskrivelse av blogginnlegget *

*Valgfritt fritekst-felt i CVPartner. Kan med andre ord være tomt.
**Valgfritt nummer-felt i CVPartner. Tom verdi er i utgangspunktet -1, men det kan også forekomme 0.

cv_partner_courses

  • Kurs som ansatte har gjennomført.
  • Én rad for hvert kurs for hver ansatt.
Kolonne Datatype Har alltid verdi Beskrivelse Eksempeldata
user_id string Unik ID som brukes for å identifisere en ansatt i tabellene for CVPartner. 616d31b6fd94bb11c92ec19a
name string ⚠️ * Navn på kurset Prosjektledelse, Continous Delivery *
program string ⚠️ * Arrangør av kurset Knowit Academy *
year string ⚠️ * Årstall for kurset 2019, 2021 *
long_description string ⚠️ * Beskrivelse av kurset *

*Valgfritt fritekst-felt i CVPartner. Kan med andre ord være tomt.

cv_partner_key_qualifications

  • Sammendrag av kvalifikasjoner for en ansatt.
  • Én rad for hvert sammendrag (kan være flere) for hver ansatt.
Kolonne Datatype Har alltid verdi Beskrivelse Eksempeldata
user_id string Unik ID som brukes for å identifisere en ansatt i tabellene for CVPartner. 616d31b6fd94bb11c92ec19a
label string ⚠️ * Navn på sammendrag Standard, For NAV *
long_description string ⚠️ * Fritekst som summerer opp kvalifikasjonene for en ansatt. ... er en nysgjerrig og engasjert utvikler som har lang erfaring innen ... *
tag_line string ⚠️ * Kortversjon av fritekst som summerer opp kvalifikasjonene for en ansatt. ... er en engasjert utvikler ... *

*Valgfritt fritekst-felt i CVPartner. Kan med andre ord være tomt.

Kompetansekartleggingen

Tabeller:

kompetansekartlegging_users

Informasjon om brukere av kompetansekartleggingen, mer eller mindre en e-post-liste

kompetansekartlegging_questions

  • Spørsmålene (underkategoriene) som brukes i kompetansekartleggingen.
Kolonne Datatype Har alltid verdi Beskrivelse Eksempeldata
id string Unik ID for hvert spørsmål 287a6f25-f056-5699-...
index string Unik indeks for hver hovedkategori (TODO: Starter på 1?) 1, 2, 3
topic string Tittel for hvert spørsmål Kubernetes, API-design, Tjenestedesign
text string TODO Beskrivelse for hvert spørsmål Bruk av loddebolt til lavspent elektronikk
categoryid string Unik ID for hver hovedkategori, som kan brukes for å koble med kompetansekartlegging_categories 287a6f25-f056-5699-...
type string TODO TODO TODO
scalestart TODO TODO TODO TODO
scalemiddle TODO TODO TODO TODO
scaleend TODO TODO TODO TODO

kompetansekartlegging_categories

  • Metadatatabell som beskriver hovedkategoriene for spørsmålene
Kolonne Datatype Har alltid verdi Beskrivelse Eksempeldata
id string Unik ID for hver hovedkategori 287a6f25-f056-5699-...
index string Unik indeks for hver hovedkategori (TODO: Starter på 1?) 1, 2, 3
text string Tittel for hovedkategori Backend, Design, Jobbrotasjon
description string TODO Beskrivelse for hovedkategori Design i Objectnet dekker et stort område ...

kompetansekartlegging_answers

Kolonne Datatype Har alltid verdi Beskrivelse Eksempeldata
username string Unik ID for hver bruker i kompetansekartleggingsverktøyet 059ef00d-d6af-4517-...
email string E-postadresse for brukeren [email protected]
guid string Unik ID for brukeren som kan brukes til å koble mot f.eks. dataene fra UBW b051b402346144a6cdc...
questionid string Unik ID for spørsmålet 230473f7-37e1-4f69-...
knowledge float TODO Selvrapportert score for brukerens kompetanse for spørsmålet/kategorien. Mellom (TODO:0/1) og 5 1.8, 2.3, 5.0
motivation float TODO Selvrapportert score for brukerens motivasjon for spørsmålet/kategorien. Mellom (TODO:0/1) og 5 1.8, 2.3, 5.0
customscalevalue string TODO TODO TODO
updatedat string Tidspunkt raden sist ble oppdatert 2021-06-18T12:03:35.734Z

kompetansekartlegging_catalogs

Versjonsinformasjon om katalogen av kategorier

UBW - Kunder/timer

  • Informasjon om hvilke ansatte som har jobbet på hvilke prosjekter, og antall timer ansatte har ført på ulike prosjekter.
  • Normalt hentes data for sist avsluttede periode ("uke" i UBW) én gang per uke.

Tabeller:

ubw_customer_per_resource

  • Rangert oversikt over alle kunder hver konsulent har ført timer på den siste tiden.
  • Inneholder data for sist registrerte periode ("uke" i UBW), pluss fire perioder tilbake (totalt fem perioder).
  • Én rad for hver periode per kunde for hver konsulent.
Kolonne Datatype Har alltid verdi Beskrivelse Eksempeldata
reg_period string Årstall og ukenummer for periode i UBW (merk at dette kan være "korte" og "lange" uker på begynnelse/slutt av måneden) 202042, 202205
guid string Unik ID for ansatt b051b402346144a6cdcc...
alias string Alias for ansatt (tre første bokstaver fra for- og etternavn) frearn, olaber
customer string Navn på kunde Entur
work_order string Navn på arbeidsordre (prosjekt) Entur Team Salg
work_order_description string Beskrivelse av arbeidsordre (prosjekt) Drift, forvalting og support
project_type string Om prosjektet er internt eller eksternt External Projects, Local Projects
time integer Tidsstempel for når raden sist ble oppdatert 1646999395
weigth (merk skrivefeil) integer Rangering av antall timer ført, som beregnes for sist avsluttede periode hver gang data hentes fra UBW. Vekt 1 betyr at dette er kunden som konsulenten har ført flest timer på den perioden. Tanken er at dette er konsulentens "primærkunde". Dersom konsulenten har ført samme antall timer på ulike kunder, vil kundene få ulik vekt, og rangeres alfabetisk. Fordi det tas vare på data fire perioder bakover i tid, vil det være flere rader med samme vekt, men vektene vil gjelde for ulike perioder og med ulikt tidsstempel (time). 1, 2, 3

ubw_per_project_data

  • Aggregert informasjon om antall ansatte og registrerte timer per prosjekt over tid.
  • Inneholder historiske data over tid.
  • Én rad for hver periode for hvert prosjekt som har registrering den perioden.
  • ⚠️ OBS! Kan inneholde flere rader for samme kunde/prosjekt/periode, der raden med siste tidsstempel (timestamp) er den som gjelder.
Kolonne Datatype Har alltid verdi Beskrivelse Eksempeldata
reg_period string Årstall og ukenummer for periode i UBW (merk at dette kan være "korte" og "lange" uker på begynnelse/slutt av måneden) 202042, 202205
customer string Navn på kunde Entur
work_order string Navn på arbeidsordre (prosjekt) Entur Team Salg
hours float Sum av totalt antall timer registrert på prosjektet denne perioden 5.5, 20.0
employees integer Antall ansatte som har registrert timer på prosjektet denne perioden 1, 5, 12
timestamp integer Tidsstempel for når raden sist ble oppdatert 1646999395

Clone this wiki locally