FM8: andmete kasutusteabe pärimine
Mustri tüüp: funktsionaalne muster
Peamine kasutaja: inimene
Eesmärk: andmete pärimine
Allikas: teadaolev praktika
Teenuste arv: 1
Abstract
FM8: Data usage pull service is used when a person must be able to query an information system to find out when and why his/hers data has been used. A service based on primitive “PM1: Data pull service” will be created. The service input defines which data usage instances will be retrieved and the service output contains information about these instances. Note that the person’s personal code is not included in the service input because it can be found from X-Road message headers.
In the context of this pattern:
- The service consumer is the information system that has recorded the data usage instances;
- The service consumer is the information system, that displays information about the data usage instances to the person.
Logging the data usage is out of the scope of this pattern.
One possible solution would be Personal Data Usage Monitor https://github.com/e-gov/AJ/blob/master/README.md.
Sissejuhatus
Muster kirjeldab andmete kasutusteabe pärimist üle X-tee. Käesoleva mustri rakendamine on üldiselt vajalik infosüsteemides, mis töötlevad isikuandmeid ja on kohustatud võimaldama isikul oma andmete töötlemise kohta infot saada. Antud mustri järgi loodud teenuse tarbimine võimaldatakse isikutele üldjuhul läbi eesti.ee portaali.
Tegemist on primitiivi "PM1: andmete päringu teenus" rakendamisega konkreetse ülesande täitmiseks. Käesolev muster tugineb lisaks X-tee sõnumite päises olevale kohustuslikule isikukoodi väljale.
Kasutusteabe pärimise eesmärgil luuakse üks X-tee teenus, mille korral:
- teenuse osutaja on andmete kasutusteavet koguv infosüsteem;
- teenuse tarbija on andmete kasutusteavet isikule esitav infosüsteem.
Kasutusteabe logimine on käesoleva mustri skoobist väljas. Soovituslik on kasutada korduvkasutatavat komponenti "Andmejälgija", mille kohta täpsem info on leitav aadressil https://github.com/e-gov/AJ/blob/master/README.md.
Probleem
Isikuandmeid töötlev infosüsteem on kohustatud võimaldama isikul oma andmete töötlemise kohta infot saada. Infosüsteemis on lahendatud isikuandmete töötlemise logimine, aga isikutel puudub nendele logidele ligipääs. Isikud ise tohivad logidest näha ainult nende enda andmetega sooritatud tegevusi.
Lahendus
Isikuandmeid töötlevas infosüsteemis luuakse X-tee teenus, mis võimaldab isikul saada infot enda isikuandmete töötlemise kohta. Teenuse tarbimine võimaldatakse isikutele eesti.ee portaali vahendusel.
Teenuste kirjeldus
Teenuse sisend koosneb kahest elemendist:
- ofset – määrab millisest kirjest alates isikuandmete kasutamise kirjed tagastatakse;
- limit – määrab tagastatavate kirjete arvu.
Sisendite defineerimisel on arvestatud sellega, et kirjeid oleks lihtne kuvada lehekülgede kaupa.
Teenuse väljundis on iga isikuandmete kasutuse kirje kohta toodud:
- logtime – kirje ajamoment;
- action – menetluse/tegevuse
inimmõistetav nimi;
- receiver – asutuse kood, kellele isikuandmeid edastati.
Mustri käitumine
Mustri käitumine on analoogne primitiivi "PM1: andmete päringu teenus" käitumisele. Ainus erisus on, et isiskuandmeid töötlevas infosüsteemis lisandub X-tee sõnumi päise töötlemise samm. Päises oleva isikukoodi (element userId) põhjal tuvastatakse isik, kelle andmete töötlemise kirjed tagastatakse.
Lisakaalutlused
Käesoleva mustri kasutamisel tuleks silmas pidada järgnevat:
- mustri järgi loodav teenus ei ole tarbitav süsteemide poolt, kus teenuse tarbimisel kasutatav (X-tee sõnumite päisesse lisatav) isikukood on püsiväärtustatud;
- tuleneb korduvkasutatava komponendi "Andmejälgija" spetsifikatsioonist, mille kohta leiab täiendavat infot lehekülgedelt https://github.com/e-gov/AJ/blob/master/README.md ja https://github.com/jointxroad/components.
Näide
Näitena on toodud Andmejälgija teenus "findUsage".
Sisend:
body
|-> request (type: findUsage)
| |-> offset (type: integer, description: “Esimese tagastatava kirje jrknr“)
| |-> limit (type: integer, description: “Tagastatavate kirjete arv“)
Väljund:
body
|-> response (type: findUsageResponse)
| |-> usage (type: ResponseFields)
| | |-> logtime (type: dateTime, description: “Isikuandmete töötlemise aeg“)
| | |-> action (type: string, description: “Tegevus“)
| | |-> receiver (type: string, description: “Isikuandmeid vastu võtnud osapool“)