Lai varētu izveidot savienojumu un izgūt datus, DAGR portālā ir jābūt reģistrētam un apstiprinātam datu ņēmēja pieteikumam.
Pieteikšanās process detalizētāk aprakstīts datu ņēmēja ceļa kartē.
Pieslēgšanās pie DAGR REST API notiek ar tehniskajiem lietotājiem jeb savienojumiem. Savienojumus datu ņēmēja kontaktpersonas reģistrē DAGR pašapkalpošanās portālā un tālāk ar savienojumā norādīto informāciju no DAGR REST API tiek pieprasīts drošības talons. Iegūtais drošības talons tālāk jāpievieno visiem datu pieprasījumiem galvenē ar nosaukumu "Authorization".
Savienojumu reģistrēšanas un drošības talona pieprasīšanas procesi detalizētāk arpakstīti autentifikācijas sadaļā.
Atļaujas piekļūt DAGR datu kopām tiek pārvaldītas VIRSIS sistēmā. Pieprasot datus pieprasījuma galvenē ar nosaukumu "X-DAGR-Permission" ir jānorāda atbilstošās atļaujas numurs.
Datu ņēmējam pieejamās atļaujas var aplūkot DAGR portālā vai arī noskaidrot ar DAGR REST API izsaukuma palīdzību. DAGR portālā VIRSIS atļaujas aplūkojamas sadaļā "VIRSIS atļaujas":

Savukārt, izmantojot DAGR REST API, atļauju sarakstu var iegūt ar izsaukumu formā GET {dagr_adrese}/current_user_permissions, galvenē "Authorization" norādot izgūto drošības talonu.
Izsaukuma piemērs:
curl --location 'https://test.dagr.gov.lv/current_user_permissions' \
--header 'Authorization: ••••••'
Atbildes piemērs:
[
{
"service_name": "vzd_address",
"permission_number": "1321",
"purpose_of_use": "Vienošanās pieteikuma datu izmantošanas mērķis (TEST JH)",
"use_count": 1,
"use_count_quota": 1321,
"valid_from": null,
"valid_to": null,
"access_control_tree": {
"name": "vzd_address",
"read_access": "full",
"monitoring": null,
"properties": null
}
},
{
"service_name": "lb_pens_manag_list",
"permission_number": "29579",
"purpose_of_use": "TESTS",
"use_count": 0,
"use_count_quota": 0,
"valid_from": "2025-10-15T21:00:00Z",
"valid_to": "2098-12-31T22:00:00Z",
"access_control_tree": {
"name": "lb_pens_manag_list",
"read_access": "partial",
"monitoring": null,
"properties": [
{
"name": "ListName",
"read_access": "partial",
"properties": null,
"monitoring": null
},
{
"name": "List",
"read_access": "partial",
"monitoring": null,
"properties": [
{
"name": "RegNum",
"read_access": "partial",
"properties": null,
"monitoring": null
},
{
"name": "Name",
"read_access": "partial",
"properties": null,
"monitoring": null
},
{
"name": "ValidFrom",
"read_access": "partial",
"properties": null,
"monitoring": null
}
]
}
],
"filters": [],
"search": [
{
"name": "pk"
}
]
}
}
]
Atļaujas datu struktūras skaidrojums:
Lai arī VIRSIS datu atļaujas ir apskatāmas DAGR, tās tiek piešķirtas un pārvaldītas VIRSIS sistēmā. Lai iegūtu datu piekļuves atļauju, datu ņēmējam VIRSIS sistēmā ir jāpiesakās uz datu devēja informācijas pakalpojumu un jānoslēdz vienošanās par tā izmantošanu. Vienošanās iekļautā informācija veido atļaujas saturu un vienošanās identifikators atbilst atļaujas numuram.
Visām DAGR izplatāmajām datu kopām ir nodrošināta datu izgūšana pēc objekta identifikatora.
Katrai datu kopai ir savs datu izgūšanas serviss. Katram datu izgūšanas servisam ir savs noteikts objekta identifikators pēc kā ieraksts tiek meklēts. Šis identifikators ir norādīts servisa aprakstā. Par objektu identifikatoriem tiek izmantotas faktiskas biznesa vērtības, piemēram – personas kods, reģistrācijas numurs, dokumenta numurs, adreses kods. Dažos gadījumos tiek izmantoti salikti kodi, kas sastāv no vairākām vērtībām, piemēram, uzņēmumu gada pārskatiem tiek izmantots gads un uzņēmuma reģistrācijas numurs. Servisu saraksts aplūkojams https://test.dagr.gov.lv/api (testa vidē) un https://dagr.gov.lv/api (produkcijas vidē) sadaļā "Datu servisi".
Datu izgūšanas pēc objekta identifikatora servisi veidoti kā GET tipa pakalpes ar adresi vienā no divām formām: :
https://{dagr_adrese}/{datu_kopa}/{objekta_identifikators}https://{dagr_adrese}/{datu_kopa}:{atslēga}/{atslēgas_vērtība}Papildus, servisa galvenē “X-DAGR-Permission” ir jānorāda VIRSIS atļaujas numurs un servisa galvenē "Authorization" ir jānorāda drošības talons.
Servisa izsaukuma piemērs – Valsts adrešu reģistra adrese pēc adreses koda:
curl --location --request GET 'https://test.dagr.gov.lv/vzd_address/112022722' \
--header 'Authorization: Bearer {autentifikācijas ietvaros saņemtais drošības talons}' \
--header 'X-DAGR-Permission: {VIRSIS atļaujas numurs}'
Atbilde būs atlasītā objekta dati JSON formātā atļaujā norādītajā apmērā.
Atbildes piemērs:
{
"ielCode": 100300132,
"novName": null,
"zipCode": "LV-1057",
"dzvName": "18",
"nltCode": 101848550,
"code": 112022722,
"cieName": null,
"pagAtvk": null,
"typ": 109,
"address": "Aglonas iela 31 - 18\nRīga",
"lksCoordLat": 307682.939,
"pilAtvk": "0001000",
"pagName": null,
"pagCode": null,
"adr_code": "112022722",
"dzvCode": 112022722,
"novAtvk": null,
"ielName": "Aglonas iela",
"novCode": null,
"nltName": "31",
"irAdrese": true,
"history": [
{
"adrese": "Aglonas iela 31, dz. 18, Rīga"
}
],
"lksCoordLong": 511254.388,
"pilCode": 100003003,
"cieCode": null,
"pilName": "Rīga"
}
Papildus servisa izsaukuma piemērs – UR juridiskā persona pēc reģistrācijas numura:
curl --location --request GET 'https://test.dagr.gov.lv/ur_legal_entity/40001016757' \
--header 'Authorization: Bearer {autentifikācijas ietvaros saņemtais drošības talons}' \
--header 'X-DAGR-Permission: {VIRSIS atļaujas numurs}'
PMLP fizisko personu datu kopai fpr_person ir īpašs PMLP noteikts veids, kā tiek izplatīti dati par personām, kurām ir mainījies personas kods. Ja atlasa personas datus pēc vecā personas koda, tad ierakstā visi lauki izņemot "PersonCode" un "ActualPersonCode" saturēs tukšas (null) vērtības. Lai iegūtu personas datus šajos gadījumos, tie ir jāpieprasa par jaunu, izmantojot jauno personas kodu. Vienkāršs veids, kā noteikt šos gadījumus, ir salīdzināt "PersonCode" un "ActualPersonCode" - ja tie atšķiras, tad jāpieprasa dati ar jauno personas kodu.
Izsaukuma piemērs - personas dati pēc vecā personas koda:
curl --location 'https://test.dagr.gov.lv/fpr_person/03109919998' \
--header 'X-DAGR-Permission: 1339' \
--header 'Authorization: ••••••'
Atbildes pimērs - personas dati pēc vecā personas koda:
{
"PersonCode": "03109919998",
"ActualPersonCode": "32777181979",
"PersonsCode": null,
"PersonsName": null,
"PersonsBirth": null,
"PersonsCitizenship": null,
"PersonsDocument": null,
"PersonsPoliticallyRepressedStatus": null,
"PersonsResidence": null,
"PersonsResistanceMemberStatus": null,
"PersonsStatusFPR": null,
"PersonsDeath": null
}
Izsaukuma piemērs - personas dati pēc jaunā personas koda:
curl --location 'https://test.dagr.gov.lv/fpr_person/32777181979' \
--header 'X-DAGR-Permission: 1339' \
--header 'Authorization: ••••••'
Atbildes pimērs - personas dati pēc jaunā personas koda:
{
"PersonCode": "32777181979",
"ActualPersonCode": "32777181979",
"PersonsCode": [
{
"PersonCode": "32777181979",
"ValidFrom": "2022-08-12T00:00:00+03:00",
"ValidUntil": null
},
{
"PersonCode": "03109919998",
"ValidFrom": "1999-10-05T00:00:00+03:00",
"ValidUntil": "2022-08-12T00:00:00+03:00"
}
],
"PersonsName": {
"LastName": "DAGRE",
"FirstName": "MAIGA",
"ReasonName": "LATVIJAS VALSTSPIEDERĪGĀ PIRMUZSKAITE",
"ReasonCode": "PUZL",
"ValidFrom": "1999-10-05T00:00:00+03:00",
"OtherNames": null
},
"PersonsBirth": {
"BirthPlaceCountryCode": "LVA",
"BirthPlaceFormatted": "LIEPĀJA",
"BirthDate": "1999-10-03T00:00:00+03:00",
"IsBornDead": false,
"ReasonName": "LATVIJAS VALSTSPIEDERĪGĀ PIRMUZSKAITE",
"BirthPlaceCountryName": "LATVIJA",
"ValidFrom": "1999-10-05T00:00:00+03:00",
"ReasonCode": "PUZL",
"BirthTime": "2024-01-04T15:25:00+02:00"
},
"PersonsCitizenship": [
{
"CountryCode": "LVA",
"CountryName": "LATVIJAS",
"ValidFrom": "1999-10-05T00:00:00+03:00",
"CitizenshipTypeCode": "P",
"CitizenshipTypeName": "PILSONIS"
}
],
"PersonsDocument": [
{
"DocumentIssuingCountryCode": "LVA",
"DocumentKindCode": "PRAP",
"ReasonName": "OTRA VEIDA DOKUMENTA SAŅEMŠANA",
"DocumentNumber": "PA4091765",
"ValidFrom": "2022-08-12T00:00:00+03:00",
"DocumentIssuingDate": "2022-08-12T00:00:00+03:00",
"DocumentKindName": "PERSONAS APLIECĪBA",
"ReasonCode": "OTRADOKS",
"DocumentIssuingPlace": null,
"DocumentIssuingCountryName": "LATVIJA",
"DocumentValidityDate": "2032-08-11T00:00:00+03:00",
"DocumentIssuingOrganizationName": "PMLP RĪGAS 4.NODAĻA"
}
],
"PersonsPoliticallyRepressedStatus": null,
"PersonsResidence": {
"CountryCode": "LVA",
"LocalGovernmentCode": "0044000",
"CountryName": "LATVIJA",
"ArisCode": "118747094",
"AddressFormatted": "\"ACONES STACIJA\" - 1, STOPIŅU PAGASTS, ROPAŽU NOVADS, LV-2130",
"ReasonName": "DEKLARĒTĀS DZĪVESVIETAS ZIŅAS",
"RegionCode": null,
"ValidFrom": "2003-06-16T00:00:00+03:00",
"ReasonCode": "DKDZ",
"TerritorialUnitCode": "0044420"
},
"PersonsResistanceMemberStatus": null,
"PersonsStatusFPR": {
"StatusValidFrom": "1999-10-05T00:00:00+03:00",
"StatusValueCode": "1",
"StatusValueTitle": "ir statuss AKTĪVS"
},
"PersonsDeath": null
}
FPRIS datu grupu datus datu devējs (PMLP) vai DAGR administrators var apskatīties:
Sadaļā ir pieejami šādi servisi:
GET /fpr_person/{PersonCode}GET /fpr_person_all_changesServisi GET /fpr_person/{PersonCode} un GET /fpr_person_all_changes satur visu jauno FPRIS datu grupu datus.
fpr_person. Atverot datu kopu fpr_person, nospiežot pogu “Augšupielādēt kopas saturu” un pēc tam pogu “Tehniskais režīms”, tiks pieejams datu lauks "fpr_person datu grupa", kurā no lejup krītošas izvēlnes var izvēlēties ielādējamo datu grupu.FPRIS datu grupu saraksts:
| Nr | Serviss | Apraksts |
|---|---|---|
| 1 | GetPersonsCustodyRights | Aizgādības tiesības (vecāku vara) |
| 2 | GetPersonsMaritalStatus | Ģimenes stāvoklis |
| 3 | GetBirthCertifyingDocuments | Dzimšanu apliecinošie dokumenti |
| 4 | GetPersonsParents | Personas aktuālie vecāki |
| 5 | GetPersonsChild | Bērni |
| 6 | GetPersonsMarriage | Laulības |
| 7 | GetMarriageCertifyingDocuments | Laulību apliecinošie dokumenti |
| 8 | GetDeathCertifyingDocuments | Miršanu apliecinošie dokumenti |
| 9 | GetCustodyRightsCertifyingDocuments | Aizgādības tiesību apliecinošie dokumenti |
| 10 | GetParentCertifyingDocuments | Vecāku apliecinošie dokumenti |
| 11 | GetPersonsPoliticallyRepressedStatus | Politiski represētās personas statuss |
| 12 | GetPersonsResistanceMemberStatus | Nacionālās pretošanās kustības dalībnieka statuss |
| 13 | GetWW2MemberStatus | Otrā pasaules kara dalībnieka statuss |
| 14 | GetPersonsCivilStatusCertificate | Civilstāvokļa aktu reģistrācijas apliecības |
| 15 | GetPersonsBirthRegister | Dzimšanas reģistrs |
| 16 | GetPersonsDeathUnborn | Miršanas reģistrs |
| 17 | GetPersonsPartnership | Partnerības |
| 18 | GetPersonsGuardianship | Personas aizbildnība |
| 19 | GetGuardianshipCertifyingDocuments | Personas aizbildnības apliecinošie dokumenti |
| 20 | GetPersonsGender | Personas dzimums |
| 21 | GetGenderCertifyingDocument | Dzimuma ziņu apliecinošs dokuments |
| 22 | GetPersonsSurnameAtBirth | Personas dzimtais uzvārds |
| 23 | GetPersonsGuardian | Aizbildņi, audžuģimene/audžuvecāki |
| 24 | GetPersonsTrusteeship | Aizgādnība |
| 25 | GetLegalCapacityLimitation | Rīcībspējas ierobežošanas veids |
| 26 | GetTrusteeshipCertifyingDocuments | Aizgādnības ziņu apliecinošais dokuments |
| 27 | GetPersonsTrustee | Aizgādņi |
| 28 | GetTrusteeCertifyingDocuments | Aizgādņu ziņu apliecinošais dokuments |
| 29 | GetPersonStatus | Rīcībspējas statuss |
| 30 | GetPdbPoliticallyRepresented | Politiski represētās personas apliecība |
| 31 | GetPdbSecondWorldWarStatusCard | Otrā pasaules kara dalībnieka apliecība |
| 32 | GetNonRegisteredPerson | Nereģistrētā persona |
| 33 | GetPdbNationalResistance | Nacionālās pretošanās kustības dalībnieka apliecība |
Caur DAGR tiek izplatīti pašvaldību SOPA sistēmas trūcīgo un maznodrošināto dati. Katra pašvaldība šajā gadījumā ir atsevišķs datu devējs, kurš uz savu datu izmantošanu VIRSIS sistēmā piešķir atsevišķu atļauju.
Neskatoties uz to, ka datu devēji ir vairāki un atļaujas ir vairākas, servisi datu izgūšanai pēc identifikatora (personas koda) ir tikai divi. Tie ir formā:
GET /sopa_needy/{district_atvk}/{person_code} serviss trūcīgo datu datu izguvei pēc personas koda;GET /sopa_underprivileged/{district_atvk}/{person_code} serviss maznodrošināto datu izguvei pēc personas koda.Lai izgūtu datus no dažādām pašvaldībām, servisa izsaukumā ir jāmaina ATVK kods (district_atvk) un atbilstošais atļaujas numurs galvenē "X-DAGR-Permission".
Visām DAGR izplatāmajām datu kopām ir nodrošināta iespēja izgūt datu izmaiņas.
Servisa adrese. Izmaiņu izgūšanas servisi veidoti kā GET tipa pakalpes ar adresi formā:
https://test.dagr.gov.lv/{datu_kopa}_changes
Servisa galvenes. Servisa galvenē “X-DAGR-Permission” ir jānorāda VIRSIS atļaujas numurs un servisa galvenē "Authorization" ir jānorāda drošības talons.
Servisa parametri. Izmaiņu izgūšanas servisiem ir trīs opcionāli parametri:
Piebilde: Izmaiņu servisiem ir vēl citi parametri, bet tiek izmantoti tikai monitoringa ietvaros un ir aprakstīti monitoringa sadaļā.
Servisa atbilde. Izmaiņu servisa atbilde satur sarakstu ar izmaiņu ierakstiem JSON formātā, kur katram ierakstam ir šāda struktūra:
{
"offset": izmaiņu_kārtas_numurs,
"timestamp": "izmaiņu_pievienošanas_datums_un_laiks",
"key": "ieraksta_identifikators",
"value":
{
ieraksta_dati_kā_JSON_objekts
}
}
Ja ieraksta atbildē "value" vērtība ir null, tad tas nozīmē, ka ieraksts ar norādīto atslēgu ir iepriekš pastāvējis, bet pēdējā izmaiņa ir ieraksta dzēšanas darbība.
BŪTISKI: Datu kopas izmaiņu rinda veidota tā, lai tā saturētu tikai informāciju par pēdējo reizi, kad katrs unikālais ieraksts ir mainīts. Līdz ar to izmaiņu servisu var izmantot visu datu kopas ierakstu atklāšanai un sekošanai līdzi aktuālajām izmaiņām, bet to nevar izmantot vēstures datu atlasei. Gadījumos, kur datu kopa satur vēsturisku izmaiņu datus, tās ir iekļautas ierakstu datu struktūrā.
Mehānisms, kas no izmaņu rindas dzēš neaktuālās ieraksta vērtības, ir asinhrons. Tamdēļ var gadīties situācijas, kur izmaiņu rindā īslaicīgi atrodami divi ieraksti ar vienādām atslēgām. Šajos gadījumos par ieraksta aktuālo vērtību jāuzskata pēdējā izmaiņa (ar lielāko offset vērtību). Kā blakus efekts, izmaiņu kārtas numuri var izkrist, bet izgūstot izmaiņu datus tie vienmēr tiks atgriezti augošā secībā.
Datu izmaiņu izgūšanas servisa pielietojumi:
Izmaiņu servisa izsaukuma piemērs:
curl --location 'https://test.dagr.gov.lv/vzd_address_changes?offset=-3&limit=100' \
--header 'X-DAGR-Permission: 54654' \
--header 'Authorization: ••••••'
Izmaiņu servisa atbildes piemērs:
[
{
"key": "119575762",
"offset": 1447457,
"timestamp": "2024-11-15T04:55:34.556Z",
"value": {
"adr_code": "119575762",
"address": "Gaujas iela 5C - 27\nMārupe\nMārupes nov.",
"code": 119575762,
"cieCode": null,
"cieName": null,
"dzvCode": 119575762,
"dzvName": "27",
"ielCode": 100391101,
"ielName": "Gaujas iela",
"lksCoordLong": 503335.553,
"lksCoordLat": 306236.786,
"nltCode": 104467817,
"nltName": "5C",
"novCode": 100016583,
"novName": "Mārupes nov.",
"pagCode": null,
"pagName": null,
"pilCode": 100003815,
"pilName": "Mārupe",
"typ": 109,
"pilAtvk": "0039200",
"novAtvk": "0039000",
"pagAtvk": null,
"zipCode": "LV-2167",
"irAdrese": true,
"history": []
}
},
{
"key": "119576112",
"offset": 1447458,
"timestamp": "2024-11-15T04:55:37.158Z",
"value": {
"adr_code": "119576112",
"address": "Murjāņu iela 61A - 16\nRīga",
"code": 119576112,
"cieCode": null,
"cieName": null,
"dzvCode": 119576112,
"dzvName": "16",
"ielCode": 100308942,
"ielName": "Murjāņu iela",
"lksCoordLong": 514852.251,
"lksCoordLat": 315282.343,
"nltCode": 101956050,
"nltName": "61A",
"novCode": null,
"novName": null,
"pagCode": null,
"pagName": null,
"pilCode": 100003003,
"pilName": "Rīga",
"typ": 109,
"pilAtvk": "0001000",
"novAtvk": null,
"pagAtvk": null,
"zipCode": "LV-1064",
"irAdrese": true,
"history": []
}
},
{
"key": "105390046",
"offset": 1447459,
"timestamp": "2024-11-15T04:55:39.010Z",
"value": null
}
]
Uzmanību piemērā var pievērst pēdējam ierakstam, kas satur "value" ar vērtību null. Tas nozīmē, ka adrese ar adreses kodu 105390046 no adrešu reģistra ir dzēsta.
PMLP datu kopai fpr_person izmaiņas uz DAGR tiek nodotas nevis uzreiz visam ierakstam, bet pa daļām. Līdz ar to izmaiņu datiem ir pielāgots serviss /fpr_person_all_changes, kur izmaiņu dati ir sadalīti pa biznesa notikumiem jeb datu blokiem. Katram notikumam ir sava atslēga formā "{personas_kods}/{notikuma_veids}".
Izsaukuma piemērs:
curl --location 'https://test.dagr.gov.lv/fpr_person_all_changes?limit=1000×tamp=2024-10-07T08%3A17%3A33.985Z' \
--header 'X-DAGR-Permission: 23091' \
--header 'Authorization: ••••••'
Atbildes piemērs:
[
{
"key": "14097314007/ActualPersonCode",
"offset": 47008638,
"timestamp": "2024-10-07T10:17:31.631Z",
"value": {
"PersonCode": "14097314007",
"ActualPersonCode": "32190664656"
}
},
{
"key": "14097314007/PersonsCode",
"offset": 47008639,
"timestamp": "2024-10-07T10:17:31.655Z",
"value": {
"PersonCode": "14097314007",
"PersonsCode": null
}
},
{
"key": "14097314007/PersonsName",
"offset": 47008640,
"timestamp": "2024-10-07T10:17:31.664Z",
"value": {
"PersonCode": "14097314007",
"PersonsName": null
}
},
{
"key": "14097314007/PersonsBirth",
"offset": 47008641,
"timestamp": "2024-10-07T10:17:31.670Z",
"value": {
"PersonCode": "14097314007",
"PersonsBirth": null
}
},
{
"key": "14097314007/PersonsCitizenship",
"offset": 47008642,
"timestamp": "2024-10-07T10:17:31.677Z",
"value": {
"PersonCode": "14097314007",
"PersonsCitizenship": null
}
},
{
"key": "13087215007/PersonsDocument",
"offset": 47008643,
"timestamp": "2024-10-07T10:17:31.689Z",
"value": {
"PersonCode": "13087215007",
"PersonsDocument": null
}
},
{
"key": "14097314007/PersonsPoliticallyRepressedStatus",
"offset": 47008644,
"timestamp": "2024-10-07T10:17:31.690Z",
"value": {
"PersonCode": "14097314007",
"PersonsPoliticallyRepressedStatus": null
}
},
{
"key": "140973140077/PersonsResidence",
"offset": 47008645,
"timestamp": "2024-10-07T10:17:31.694Z",
"value": {
"PersonCode": "14097314007",
"PersonsResidence": null
}
},
{
"key": "14097314007/PersonsResistanceMemberStatus",
"offset": 47008646,
"timestamp": "2024-10-07T10:17:31.696Z",
"value": {
"PersonCode": "14097314007",
"PersonsResistanceMemberStatus": null
}
},
{
"key": "14097314007/PersonsStatusFPR",
"offset": 47008647,
"timestamp": "2024-10-07T10:17:31.702Z",
"value": {
"PersonCode": "14097314007",
"PersonsStatusFPR": null
}
},
{
"key": "14097314007/PersonsDeath",
"offset": 47008648,
"timestamp": "2024-10-07T10:17:31.703Z",
"value": {
"PersonCode": "14097314007",
"PersonsDeath": null
}
},
{
"key": "32180763556/PersonsCode",
"offset": 47008649,
"timestamp": "2024-10-07T10:17:31.705Z",
"value": {
"PersonCode": "32180763556",
"PersonsCode": [
{
"ValidFrom": "2024-10-07T00:00:00+03:00",
"ValidUntil": null,
"PersonCode": "32180763556"
},
{
"ValidFrom": "1989-10-01T00:00:00+03:00",
"ValidUntil": "2024-10-07T00:00:00+03:00",
"PersonCode": "14097314007"
}
]
}
},
{
"key": "32180763556/ActualPersonCode",
"offset": 47008650,
"timestamp": "2024-10-07T10:17:31.705Z",
"value": {
"PersonCode": "32180763556",
"ActualPersonCode": "32180763556"
}
},
{
"key": "32180763556/PersonsName",
"offset": 47008651,
"timestamp": "2024-10-07T10:17:33.195Z",
"value": {
"PersonCode": "32180763556",
"PersonsName": {
"ReasonCode": "PUZL",
"ReasonName": "LATVIJAS VALSTSPIEDERĪGĀ PIRMUZSKAITE",
"ValidFrom": "1988-10-01T00:00:00+03:00",
"FirstName": "JURIS",
"LastName": "KAULIŅŠ",
"OtherNames": null
}
}
},
{
"key": "32180763556/PersonsBirth",
"offset": 47008652,
"timestamp": "2024-10-07T10:17:34.894Z",
"value": {
"PersonCode": "32180763556",
"PersonsBirth": {
"ReasonCode": "PUZL",
"ReasonName": "LATVIJAS VALSTSPIEDERĪGĀ PIRMUZSKAITE",
"ValidFrom": "1989-10-01T00:00:00+03:00",
"BirthDate": "1973-08-13T00:00:00+03:00",
"BirthTime": null,
"IsBornDead": false,
"BirthPlaceCountryCode": "LVA",
"BirthPlaceCountryName": "LATVIJA",
"BirthPlaceFormatted": "RĪGA"
}
}
},
{
"key": "32180763556/PersonsDocument",
"offset": 47008653,
"timestamp": "2024-10-07T10:17:41.019Z",
"value": {
"PersonCode": "32180763556",
"PersonsDocument": [
{
"ReasonCode": "PUZL",
"ReasonName": "LATVIJAS VALSTSPIEDERĪGĀ PIRMUZSKAITE",
"ValidFrom": "1989-10-01T00:00:00+03:00",
"DocumentKindCode": "LNPS",
"DocumentKindName": "NEPILSOŅA PASE",
"DocumentIssuingDate": "1989-08-14T00:00:00+03:00",
"DocumentNumber": "LN000007",
"DocumentIssuingCountryCode": "XXX",
"DocumentIssuingCountryName": "PSRS",
"DocumentIssuingOrganizationName": null,
"DocumentIssuingPlace": "2. PASU DAĻA",
"DocumentValidityDate": null
}
]
}
},
{
"key": "32180763556/PersonsCitizenship",
"offset": 47008654,
"timestamp": "2024-10-07T10:17:42.713Z",
"value": {
"PersonCode": "32180763556",
"PersonsCitizenship": [
{
"ValidFrom": "1989-10-01T00:00:00+03:00",
"CountryCode": "LVA",
"CountryName": "LATVIJAS",
"CitizenshipTypeCode": "N",
"CitizenshipTypeName": "NEPILSONIS"
}
]
}
},
{
"key": "32180763556/PersonsStatusFPR",
"offset": 47008655,
"timestamp": "2024-10-07T10:17:44.508Z",
"value": {
"PersonCode": "32180763556",
"PersonsStatusFPR": {
"PersonCode": "32180763556",
"StatusValueCode": "2",
"StatusValueTitle": "ir statuss PASĪVS",
"StatusValidFrom": "2024-10-05T00:00:00+03:00"
}
}
}
]
Šajā piemērā redzamas izmaiņas, kur personai tiek mainīts personas kods. Piemērs balstīts uz faktiskiem datiem, personu identificējošās daļas aizstājot ar iedomātām vērtībām.
FPRIS datu grupu datus datu devējs (PMLP) vai DAGR administrators var apskatīties:
GET /fpr_person/{PersonCode}GET /fpr_person_all_changesGET /fpr_person/{PersonCode} un GET /fpr_person_all_changes satur visu jauno FPRIS datu grupu datus.fpr_person, nospiežot pogu “Augšupielādēt kopas saturu” un pēc tam pogu “Tehniskais režīms”, tiks pieejams datu lauks "fpr_person datu grupa", kurā no lejup krītošas izvēlnes var izvēlēties ielādējamo datu grupu.FPRIS datu grupu saraksts:
| Nr | Serviss | Apraksts |
|---|---|---|
| 1 | GetPersonsCustodyRights | Aizgādības tiesības (vecāku vara) |
| 2 | GetPersonsMaritalStatus | Ģimenes stāvoklis |
| 3 | GetBirthCertifyingDocuments | Dzimšanu apliecinošie dokumenti |
| 4 | GetPersonsParents | Personas aktuālie vecāki |
| 5 | GetPersonsChild | Bērni |
| 6 | GetPersonsMarriage | Laulības |
| 7 | GetMarriageCertifyingDocuments | Laulību apliecinošie dokumenti |
| 8 | GetDeathCertifyingDocuments | Miršanu apliecinošie dokumenti |
| 9 | GetCustodyRightsCertifyingDocuments | Aizgādības tiesību apliecinošie dokumenti |
| 10 | GetParentCertifyingDocuments | Vecāku apliecinošie dokumenti |
| 11 | GetPersonsPoliticallyRepressedStatus | Politiski represētās personas statuss |
| 12 | GetPersonsResistanceMemberStatus | Nacionālās pretošanās kustības dalībnieka statuss |
| 13 | GetWW2MemberStatus | Otrā pasaules kara dalībnieka statuss |
| 14 | GetPersonsCivilStatusCertificate | Civilstāvokļa aktu reģistrācijas apliecības |
| 15 | GetPersonsBirthRegister | Dzimšanas reģistrs |
| 16 | GetPersonsDeathUnborn | Miršanas reģistrs |
| 17 | GetPersonsPartnership | Partnerības |
| 18 | GetPersonsGuardianship | Personas aizbildnība |
| 19 | GetGuardianshipCertifyingDocuments | Personas aizbildnības apliecinošie dokumenti |
| 20 | GetPersonsGender | Personas dzimums |
| 21 | GetGenderCertifyingDocument | Dzimuma ziņu apliecinošs dokuments |
| 22 | GetPersonsSurnameAtBirth | Personas dzimtais uzvārds |
| 23 | GetPersonsGuardian | Aizbildņi, audžuģimene/audžuvecāki |
| 24 | GetPersonsTrusteeship | Aizgādnība |
| 25 | GetLegalCapacityLimitation | Rīcībspējas ierobežošanas veids |
| 26 | GetTrusteeshipCertifyingDocuments | Aizgādnības ziņu apliecinošais dokuments |
| 27 | GetPersonsTrustee | Aizgādņi |
| 28 | GetTrusteeCertifyingDocuments | Aizgādņu ziņu apliecinošais dokuments |
| 29 | GetPersonStatus | Rīcībspējas statuss |
| 30 | GetPdbPoliticallyRepresented | Politiski represētās personas apliecība |
| 31 | GetPdbSecondWorldWarStatusCard | Otrā pasaules kara dalībnieka apliecība |
| 32 | GetNonRegisteredPerson | Nereģistrētā persona |
| 33 | GetPdbNationalResistance | Nacionālās pretošanās kustības dalībnieka apliecība |
Caur DAGR tiek izplatīti pašvaldību SOPA sistēmas trūcīgo un maznodrošināto dati. Katra pašvaldība šajā gadījumā ir atsevišķs datu devējs, kurš uz savu datu izmantošanu VIRSIS sistēmā piešķir atsevišķu atļauju.
Neskatoties uz to, ka datu devēji ir vairāki un atļaujas ir vairākas, servisi arī izmaiņu datu izgūšanai ir tikai divi. Tie ir formā:
GET /sopa_needy_changes/{district_atvk} serviss trūcīgo datu izmaiņu izguvei;GET /sopa_underprivileged_changes/{district_atvk} serviss maznodrošināto datu izmaiņu izguvei.Lai izgūtu datus no dažādām pašvaldībām, servisa izsaukumā ir jāmaina ATVK kods (district_atvk) un atbilstošais atļaujas numurs galvenē "X-DAGR-Permission".
Atšķirībā no izmaiņu servisiem, kas ļauj sekot visu ierakstu izmaiņām, monitorings ļauj sekot specifisku datu saņēmēja noteiktu ierakstu izmaiņām datu kopā. Monitoringam ir nepieciešama VIRSIS monitoringa atļauja.
Lai uzsāktu monitoringu, ir jāizveido monitoringa kopa jeb jānosaka monitoringa kopas konfigurācija un jāpievieno monitoringa kopai saraksts ar identifikatoriem jeb ierakstiem, kuri tiks monitorēti. Identifikatoru saraksta izmēram nav ierobežojumu.
DAGR par monitoringa kopai pievienotajiem identifikatoriem uzkrāj izmaiņu pazīmes un izmaiņu datus monitoringa kopas konfigurācijā noteiktajā apjomā. Izmaiņu pazīmes un izmaiņu dati tiek uzkrāti no brīža, kad ieraksta identifikators tika pievienots monitoringa kopai, līdz brīdim kad tas izņemts no monitoringa kopas. Datu saņēmējiem ir iespēja nolasīt uzkrātās izmaiņu pazīmes, izmaiņu datus vai aktuālos datus par izmainītajiem ierakstiem atkarībā no VIRSIS monitoringa atļaujā noteiktā.
Monitoringa kopas var izveidot DAGR pašapkalpošanās portālā vai izmantojot DAGR REST API. Monitoringa kopas konfigurācija satur šādu informāciju:
Pēc monitoringa kopas izveides tās konfigurācijai var mainīt tikai apraksta lauku.
Monitoringa kopa ir aktīva VIRSIS atļaujas derīguma termiņa laikā. Termiņa beigu pienākšanas brīdī monitoringa kopa tiek automātiski arhivēta. Trīs mēnešus pēc arhivēšanas brīža monitoringa kopa tiek automātiski dzēsta. Datu saņēmējam ir iespēja arhivēt un dzēst datu kopas arī manuāli pirms termiņa.
Arhivētās monitoringa kopas ir pieejamas monitoringa kopu sarakstā, tām var izgūt dat saņēmēja pievienoto identifikatoru sarakstu, bet nevar vairs izgūt izmaiņu pazīmes un izmaiņu datus.
Dzēstas monitoringa kopas monitoringa kopu sarakstā vairs nav pieejamas.
Monitoringa kopu konfigurācija DAGR portālā notiek sadaļā "Patērēšana" -> "Monitoringa kopas". Šajā sadaļā ir pieejams saraksts ar to datu saņēmēju monitoringa kopām, kuriem lietotājs ir reģistrēts kā kontaktpersona:

Jaunas monitoringa kopas izveide no monitoringa kopu saraksta uzsākama nospiežot pogu "Izveidot jaunu kopu", kas atver monitoringa kopas izveides ekrānformu:

Monitoringa kopas apskate savukārt iespējama uzspiežot uz kādas no monitoringa kopām monitoringa kopu sarakstā, kas atver monitoringa kopas apskates ekrānformu:

Monitoringa kopas apskates ekrānforma satur iespēju arhivēt monitoringa kopu, dzēst monitoringa kopu, kā arī pārvaldīt monitoringa kopas identifikatoru sarakstu.
Monitoringa servisu apraksti OpenAPI standartā pieejami adresē: {dagr_adrese}/api-docs/monitoring. Servisi izsaucami ar datu saņēmēja drošības talonu. Attiecībā uz monitoringa kopu konfigurāciju pieejami šādi servisi:
POST /monitoring_set Monitoringa kopas konfigurācijas izveide. Serviss atbildē atgriezīs monitoringa kopas identifikatoru, bet saturā (body) tam jāiesūta JSON ar šādu struktūru:{
"registration_number": "string",
"dataset": "string",
"name": "string",
"description": "string",
"permission_number": "string",
"trigger_fields": "string",
"stored_fields": "string"
}
- registration_number: Datu saņēmēja reģistrācijas numurs, kuram monitoringa kopa pieder
- dataset: Nosaukums datu kopai, kuras ieraksti tiek monitorēti
- name: Monitoringa kopas īsais nosaukums (kods), unikāls datu saņēmēja monitoringa kopu ietvaros. Ja nav norādīts, tiks ģenerēts.
- description: Monitoringa kopas pilns nosaukums, kas tiek izmantots DAGR portāla ekrānformās.
permission_number: VIRSIS atļauja izgūt datus pēc identifikatora no norādītās datu kopas- trigger_fields: Monitorējamie datu lauki. Hierarhisks lauku saraksts, kuri ierosina monitoringa notikumu. Katrs jaunā rindā, apakšlīmenim atkāpe. Ja iesūta null, tad tiks paņemts no VIRSIS atļaujā norādītajiem monitorējamiem datu laukiem.
- stored_fields: Izgūstamie datu lauki. Hierarhisks lauku saraksts, kurus saglabāt par notikumu. Katrs jaunā rindā, apakšlīmenim atkāpe. Ja iesūta null, tad monitoringa kopas ietavaros varēs izgūt tikai izmaiņu pazīmes, bet ne datus.
GET /monitoring_set/{monitoring_set_id} Monitoringa kopas konfigurācijas apskate monitoringa kopai ar norādīto identifikatoru. Šis serviss ir izsaucams arī ar datu devēja drošības talonu tām monitoringa kopām, kuras monitorē konkrētā datu devēja datu kopas.PUT /monitoring_set/{monitoring_set_id} Monitoringa kopas konfigurācijas rediģēšana monitoringa kopai ar norādīto identifikatoru. Rediģējams ir tikai monitoringa kopas nosaukums. Serviss izsaucams saturā (body) iesūta JSON ar šādu struktūru:{
"description": "string"
}
- description: Monitoringa kopas pilns nosaukums, kas tiek izmantots DAGR portāla ekrānformās.
DELETE /monitoring_set/{monitoring_set_id} Monitoringa kopas konfigurācijas dzēšana monitoringa kopai ar norādīto identifikatoru.POST /terminate_monitoring_set/{monitoring_set_id} Monitoringa kopas arhivēšana monitoringa kopai ar norādīto identifikatoru.GET /monitoring_set Datu saņēmēja definēto monitoringa kopu saraksts. Šis serviss ir izsaucams arī ar datu devēja drošības talonu - šādā gadījumā tiks attēlotas visas monitoringa kopas, kas attiecināmas uz datu devēja datu kopām.
Katrai monitoringa kopai tiek uzturēts aktīvo identifikatoru saraksts. Šim sarakstam var pievienot (iekļaut), pārbaudīt, dzēst (izkļaut) monitorējamo ierakstu identifikatorus. Identifikatoriem ir jābūt tieši tādiem, kādi tie tiek izmantoti monitorējamā datu kopā.
Papildus aktīvo identifikatoru sarakstam, DAGR uztur arī identifikatoru pievienošanas un izkļaušanas vēsturi, kas var tikt izmantota lai noteiktu kuros laika posmos kuri identifikatori ir tikuši monitorēti.
Pēc noklusējuma monitorēt var tikai tādus ierakstus, kas ir pamata datu kopā. Piemēram, fizisko personu reģistram varētu monitorēt tikai tādas personas, kas faktiski ir šajā reģistrā. Taču datu kopām konfigurācijā var norādīt, ka monitorējami ir arī ieraksti, kas vēl nav pamata datu kopā.
Darbības ar monitorējamo ierakstu identifikatoriem var izdarīt gan DAGR pašapkalpošanās portālā, gan izmantojot DAGR REST API.
DAGR pašapkalpošanās portālā identifikatoru saraksts pieejams monitoringa kopas kartiņā nospiežot pogu "Monitorējamie ieraksti", kas atver monitorējamo ierakstu sarakstu:

Ņemot vērā, ka monitorējamo identifikatoru var būt ļoti daudz, kartiņā tiek attēloti tikai pēdējie 20. Kartiņā var ievadīt monitorējamā ieraksta identifikatoru un izmantojot pogas vai nu uzsākt tā monitorēšanu, pārtraukt monitorēšanu vai pārbaudīt identifikatora esamību aktīvo identifikatoru sarakstā.
Ja nepieciešams apstrādāt visu identifikatoru sarakstu, tad gan aktīvos identifikatorus, gan identifikatoru izmaiņu vēsturi iespējams lejupielādēt JSON un CSV formātos.
Monitoringa servisu apraksti OpenAPI standartā pieejami adresē: {dagr_adrese}/api-docs/monitoring. Servisi izsaucami ar datu saņēmēja drošības talonu. Attiecībā uz identifikatoru pārvaldību pieejami šādi servisi:
PUT /monitor/{monitoring_set_id}/{key} Pievienot (iekļaut) vienu identifikatoru. Pievienojamais identifikators norādāms servisa adresē. Serviss atbild ar standarta HTTP statusiem, kļūdas gadījumā norādot problēmas cēloni.POST /monitor/{monitoring_set_id} Pievienot (iekļaut) vairākus identifikatorus. Serviss ļauj pievienot līdz 1000 identifikatoriem ar vienu pieprasījumu. Pievienojamo identifikatoru saraksts padodams pieprasījuma saturā (body) JSON formātā. Piemēram šādi:[
"100344302",
"546455632",
"119414704",
"103301112",
"119383626",
"104967291"
]
Servisa atbildē tiks atgriezts saraksts ar identifikatoriem, kurus neizdevās pievienot. Piemēram, šādi:
[
{
"key": "546455632",
"status": 400,
"details": "Ierakstu nevar pievienot, jo tas nav atrasts datubāzē. Šai monitoringa kopai ir atļauts pievienot tikai eksistējošus ierakstus"
}
]
DELETE/monitor/{monitoring_set_id}/{key} Dzēst (izkļaut) identifikatoru. Izkļaujamais identifikators norādāms servisa adresē. Serviss atbild ar standarta HTTP statusiem, kļūdas gadījumā norādot problēmas cēloni.POST /unmonitor/{monitoring_set_id} Dzēst (izkļaut) vairākus identifikatorus. Serviss ļauj izkļaut līdz 1000 identifikatoriem ar vienu pieprasījumu. Izkļaujamo identifikatoru saraksts padodams pieprasījuma saturā (body) JSON formātā. Piemēram šādi:[
"100344302",
"546455632",
"321312332"
]
Servisa atbildē tiks atgriezts saraksts ar identifikatoriem, kurus neizdevās izkļaut. Piemēram, šādi:
[
{
"key": "546455632",
"status": 400,
"details": "Ieraksts šobrīd netiek monitorēts, tāpēc to nav iespējams dzēst"
},
{
"key": "321312332",
"status": 400,
"details": "Ieraksts šobrīd netiek monitorēts, tāpēc to nav iespējams dzēst"
}
]
GET /monitored_keys/{monitoring_set_id} Izgūt aktīvo identifikatoru sarakstu. Serviss atgriež norādītās monitoringa kopas aktīvo identifikatoru sarakstu, kur katram identifikatoram redzams arī pievienošanas datums un laiks. Atbildes piemērs:[
{
"key": "119414704",
"since": "2026-02-24T12:46:37.993Z"
},
{
"key": "119609516",
"since": "2025-12-04T12:45:21.054Z"
}
]
GET /monitored_keys_changes/{monitoring_set_id} Izgūt identifikatoru saraksta izmaiņas. Serviss ļauj izgūt pilnu vai daļēju identifikatoru izmaiņu vēsturi un tam ir šādi parametri:
- "offset" kārtas numurs izmaiņai no kuras sākt atlasi. Ja nav norādīts ne offset, ne timestamp, tad atgriezīs pēdējo ierakstu. Ja offset norādīts kā negatīvs skaitlis, tad aprēķinās no beigām. Piemēram, offset = -20 atgriezīs pēdējos 20 ierakstus.
- "timestamp" datumlaiks izmaiņai no kuras sākt atlasi. Ja norādīts kopā ar offset, tad tiks izmantots offset.
- "timestamp_to" datumlaiks izmaiņai līdz kurai atlasīt.
- "limit" ierakstu skaits ko iekļaut atbildē. Pēc noklusējuma 100.
Servisa atbildē tiek atgriezti pievienošanas un izkļaušanas notikumi, kur par katru notikumu redzams "key" jeb identifikators, "offset" jeb izmaiņas kārtas numurs, "timestamp" jeb izmaiņas pievienošanas datumlaiks un "value", kas satur vērtības - "on" pievienošanai un "off" izkļaušanai.
[
{
"key": "119609516",
"offset": 15,
"timestamp": "2025-12-04T12:45:21.034Z",
"value": "on"
},
{
"key": "104141723",
"offset": 16,
"timestamp": "2025-12-08T14:44:48.168Z",
"value": "off"
}
]
GET /monitoring_is_on/{monitoring_set_id}/{key} Pārbaudīt identifikatoru. Pārbaudāmais identifikators norādāms servisa adresē. Ja identifikators nebūs atrasts aktīvo identifikatoru sarakstā, tad atbildē būs HTTP statusa kods 404. Savukārt, ja identifikators būs atrasts, tad tiks atgriezts monitoringa kopas nosaukums, saņēmēja reģistrācijas numurs, datu kopas nosaukums, identifikators un tā iekļaušanas datums. Atbildes piemērs:{
"monitoring_set_name": "Testa_kopa",
"registration_number": "90001733697",
"dataset": "vzd_address",
"key": "104967291",
"since": "2026-02-24T12:46:38.214Z"
}
DAGR katrai monitoringa kopai reģistrē izmaiņu notikumus pie monitorējamās datu kopas ierakstu izmaiņām, kurām izpildās šādi nosacījumi:
Katrā izmaiņu notikumā tiek fiksēta šāda informācija:
Datu saņēmējiem ir iespēja nolasīt monitoringa notikumu izmaiņu pazīmes un atkarībā no VIRSIS atļaujas arī:
Monitoringa notikumu nolasīšana
Monitoringa notikumu izmaiņu pazīmju, jauno vērtību un iepriekšējo vērtību nolasīšanai izmantojami datu kopu izmaiņu servisi, kas veidoti kā GET tipa pakalpes ar adresi formā: https://{dagr_vides_adrese}/{datu_kopa}_changes
Servisa galvenē “X-DAGR-Permission” ir jānorāda VIRSIS monitoringa atļaujas numurs, servisa galvenē "Authorization" ir jānorāda datu saņēmēja drošības talons un ir jānorāda šādi parametri:
Aktuālo datu nolasīšana
Ja VIRSIS monitoringa atļauja paredz mainīto ierakstu aktuālo vērtību nolasīšanu, tad tas darāms izmantojot ierakstu noalsīšanas pēc identifikatora servisus, kas veidoti kā GET tipa pakalpes ar adresi formā: https://{dagr_vides_adrese}/{datu_kopa}/{ieraksta_identifikators}
Servisa galvenē “X-DAGR-Permission” ir jānorāda VIRSIS monitoringa atļaujas numurs, servisa galvenē "Authorization" ir jānorāda datu saņēmēja drošības talons un ir jānorāda šādi parametri:
Būtiski: Aktuālo datu nolasīšanas serviss, kas tiek darbināts ar monitoringu saistīto izmaiņu nolasīšanas režīmā, izsniedz datus tikai par ierakstiem ar identifikatoriem, kas iekļauti norādītās monitoringa kopas aktīvo identifikatoru sarakstā.
Personas datu monitorēšana ar monitoringa notikumu izgūšanu
Scenārijs piemērojams gadījumos kur tiek monitorēti ieraksti datu kopai, kas satur personas datus, un VIRSIS atļauja paredz izmainīto vērtību izgūšanu no monitoringa notikumiem. Apstrādājot personas datus ir būtiski:
Solis 1 - izmaiņu pazīmju izgūšana. Izgūstam izmaiņu pazīmes izmantojot https://{dagr_vides_adrese}/{datu_kopa}_changes servisu ar šādiem parametriem:
Izsaukuma piemērs:
curl --location 'https://test.dagr.gov.lv/vzd_address_changes?monitoring_set=Postman_testa_kopa&&offset=13&changes_fields=address%2C%20code%2C%20metadata' \
--header 'X-DAGR-Permission: 90001733697/vzd_address' \
--header 'Authorization: ••••••'
Atbildes piemērs:
[
{
"key": "119383626",
"offset": 13,
"timestamp": "2025-12-05T14:59:54.381Z",
"changes_overview": "address\ncode"
},
{
"key": "119609516",
"offset": 15,
"timestamp": "2025-12-09T16:23:45.479Z",
"changes_overview": "address"
},
{
"key": "119414704",
"offset": 16,
"timestamp": "2026-01-15T15:59:43.173Z",
"changes_overview": "address"
}
]
Solis 2 - izmaiņu datu izgūšana. Izgūstam izmaiņu datus katram iepriekšējā solī atlasītajam ierakstam izsaucot https://{dagr_vides_adrese}/{datu_kopa}_changes servisu ar šādiem parametriem:
Izsaukuma piemērs:
curl --location 'https://test.dagr.gov.lv/vzd_address_changes?monitoring_set=Postman_testa_kopa&offset=13&with_changes_overview=false&with_value=true&limit=1&data_fields=adr_code%2CpilName' \
--header 'X-DAGR-Permission: 90001733697/vzd_address' \
--header 'Authorization: ••••••'
Atbildes piemērs:
[
{
"key": "119383626",
"offset": 13,
"timestamp": "2025-12-05T14:59:54.381Z",
"value": {
"adr_code": "119383626",
"pilName": "Rīga"
}
}
]
Personas datu monitorēšana ar aktuālo datu izgūšanu
Scenārijs piemērojams gadījumos kur tiek monitorēti ieraksti datu kopai, kas satur personas datus, un VIRSIS atļauja paredz aktuālo datu izgūšanu. Tāpat kā iepriekšējā scenārijā, arī šeit apstrādājot personas datus ir būtiski:
Solis 1 - izmaiņu pazīmju izgūšana. Izgūstam izmaiņu pazīmes izmantojot https://{dagr_vides_adrese}/{datu_kopa}_changes servisu ar šādiem parametriem:
Skatīt iepriekšējā scanārija piemērus, jo pirmais solis sakrīt.
Solis 2 - aktuālo datu izgūšana. Izgūstam aktuālos datus katram iepriekšējā solī atlasītajam ierakstam izsaucot https://{dagr_vides_adrese}/{datu_kopa}/{ieraksta_identifikators} servisu ar šādiem parametriem:
Izsaukuma piemērs:
TIKS PIEVIENOTS PĒC IZSTRĀDES
Atbildes piemērs:
TIKS PIEVIENOTS PĒC IZSTRĀDES
Datu monitorēšana vispārīgā gadījumā
Ja monitorējamie dati nesatur personas datus vai arī monitoringa konfigurācija izveidota tā, ka tā ietver tikai konkrētajam procesam nepieciešamos monitorējamos datu laukus un izgūstamos datu laukus, monitoringa datu nolasīšanu var veikt vienā solī izmantojot https://{dagr_vides_adrese}/{datu_kopa}_changes servisu ar šādiem parametriem:
Izsaukuma piemērs:
curl --location 'https://dev.dagr.gov.lv/vzd_address_changes?monitoring_set=Postman_testa_kopa&with_value=true&offset=13' \
--header 'X-DAGR-Permission: 90001733697/vzd_address' \
--header 'Authorization: ••••••'
Atbildes piemērs:
[
{
"key": "119383626",
"offset": 13,
"timestamp": "2025-12-05T14:59:54.381Z",
"value": {
"adr_code": "119383626",
"address": "Strēlnieku iela 4B - 40\nRīga",
"code": 119383626,
"cieName": null,
"pilName": "Rīga"
},
"changes_overview": "address\ncode"
},
{
"key": "119609516",
"offset": 15,
"timestamp": "2025-12-09T16:23:45.479Z",
"value": {
"adr_code": "119609516",
"address": "Aleksandra Čaka iela 78B - 6\nRīga",
"code": 119609516,
"cieName": null,
"pilName": "Rīga"
},
"changes_overview": "address"
},
{
"key": "119414704",
"offset": 16,
"timestamp": "2026-01-15T15:59:43.173Z",
"value": {
"adr_code": "119414704",
"address": "Silakroga iela 11 - 12\nSilakrogs\nRopažu pag.\nRopažu nov.",
"code": 119414704,
"cieName": "Silakrogs",
"pilName": null
},
"changes_overview": "address"
}
]
Datu devējiem ir pieejama monitoringa statistika par datu saņēmēju veiktajiem monitoringa pieprasījumiem par savām datu kopām. Statistika pieejam DAGR portāla atverot sadaļu "Patērēšana" -> "Monitoringa kopas" un nospiežot pogu "Statistika".
Alternatīvi statistikas datus datu saņēmēji var izgūt izmantojot šādus servisus:
GET /dwhm_monitoring_requests Saraksts: Monitoringa pieprasījumu kopskaits norādītajā periodā. Izsaucot servisu iespējams norādīt šādus parametrus:
GET /dwhm_monitoring_requests_by_hour Saraksts: Monitoringa pieprasījumu skaits pa stundām norādītajā periodā. Izsaucot servisu iespējams norādīt šādus parametrus:
Monitorējamie un izgūstamie datu lauki. Ņemot vērā, ka monitorējamie un izgūstamie datu lauki tiek konfigurēti atsevišķi, var rasties interesantas situācijas:
Par sekošanu līdzi monitoringa datiem: DAGR neatzīmē, kuri monitoringa notikumi jau ir nolasīti. Sekošana līdzi monitoringa notikumu nolasīšanas stāvoklim ir realizējama datu saņēmēja pusē. Tas ir viegli izdarāms, izmantojot monitoringa notikumu nolasīšanas servisa parametru offset vai timestamp. Ja datu saņēmējam savā informācijas sistēmā ir process, kas ar noteiktu regularitāti pieprasa monitoringa datus, tad pēc datu nolasīšanas ir jāsaglabā pēdējā nolasītā ieraksta timestamp vai offset vērtība. Šo saglabāto vērtību nākošajā procesa izpildes ciklā jāpadod monitoringa notikumu izgūšanas servisam kā ieejas parametru un tas garantēs, ka nolasītas tiek tikai jaunpienākušās izmaiņas.
Ja datu ņēmējam ir atļauja izmantot izmaiņu servisus, tad pēdējo datu aktualizācijas datumu un laiku var noteikt, izsaucot izmaiņu servisu bez parametriem – tas atgriezīs pēdējo izmainīto ierakstu, izmaiņu kārtas numuru un izmaiņu datumu un laiku.
Savukārt ja datu ņēmējam ir atļauja izgūt datus tikai pēc ieraksta identifikatora, tad pēdējo izmaiņu datumu un laiku var uzzināt, izmantojot palīg-servisu: GET /updates_last_timestamp/{datu_kopas_nosaukums}
Tāpat kā datu izgūšanas servisiem, arī šim servisam galvenē ar nosaukumu "Authorization" ir jānorāda drošības talons talons un galvenē ar nosaukumu “X-DAGR-Permission” ir jānorāda atbilstošās datu atļaujas numurs.
Servisa izsaukuma piemērs:
curl --location 'https://test.dagr.gov.lv/updates_last_timestamp/fpr_person' \
--header 'X-DAGR-Permission: 1339' \
--header 'Authorization: ••••••'
Atbildes piemērs:
[
{
"key": "328681-81130",
"offset": 3551,
"timestamp": "2024-04-23T07:02:01.093Z"
}
]
Datu saņēmēja savienotājs ir JAVA aplikācija, kas izgūst datus no DAGR REST API un uztur to aktuālu kopiju datu saņēmēja datu bāzē izmantojot datu saņēmējam piešķirtu datu izmaiņu lasīšanas atļauju. Datu saņēmēja savienotājs ir izvietojams datu saņēmēja infrastruktūrā, lai nebūtu jāatver piekļuve datu bāzei ārpus datu saņēmēja tīkla infrastruktūras un datu saņēmējam būtu pilna kontrole pār datu saņēmēja savienotāju un tā konfigurāciju.
Datu saņēmēja savienotāja sekmīgai darbināšanai ir nepieciešamas šādas datnes:
Lai izmantotu datu saņēmēja savienotāju ir jāreģistrē gan datu saņēmēja savienojums Datu patērētāja savienojuma reģistrēšana, gan Datu devēja savienojuma reģistrēšana. Datu saņēmēja savienojums nepieciešams datu izgūšanai, savukārt datu devēja savienojums nepieciešams, lai datu saņēmēja savienotājs uz DAGR varētu nodot informāciju par izmantoto savienotāja konfigurāciju un pēdējiem notikumiem.
Savienotāja konfigurācijas failā application.conf ir norādāma šāda informācija ar piemēra vērtībām:
#datu kopu (servisu) nosaukumi DAGR sistēmā
dataset_names = vzd_address
#savienotāja tips darbībai datu saņemšanas režīmā
datasource_type = jdbc_export
#DAGR serveris no kura dati izgūstami
target_server_uri = "https://test.dagr.gov.lv"
#DAGR datu devēja pieslēguma ID un atslēga
provider.key = "???"
provider.client_id = "UNISO_jdbc_export_1"
#DAGR datu saņēmēja pieslēguma ID un atslēga
consumer.key = "???"
consumer.client_id = "UNISO_test_connector_1"
#DAGR REST API serviss datu kopas izmaiņu nolasīšanai
consumer_service_uri = " https://test.dagr.gov.lv/vzd_address_changes"
#Atļaujas numurs datu izmaiņu izgūšanai no datu kopas
consumer_permission_number = "34235325"
#Drošības talona izgūšanas adrese un audience
jwt.service.uri = "https://test.dagr.gov.lv/jwt/connect/token"
jwt.payload-audience = "urn:TEST-LNB:DAGR.STS/connect/token"
#norāde uz datu struktūras kartējuma konfigurācijas failu
metadata_file = "./configs/jdbcExport/connector.yaml"
#chron izteiksme, kas nosaka cik bieži veicama datu sinhronizācija
pekko.quartz.schedules.connector.expression = "*/10 * * ? * *"
input-files = "/tmp"
#JDBC pieslēgums datu bāzei kurā dati ierakstāmi
jdbc {
data {
driverClassName = "org.postgresql.Driver"
jdbcUrl = "jdbc:postgresql://localhost:5555/???"
username = "???"
password = "???"
autoCommit = false
readOnly = false
maximumPoolSize = 1
}
}
#Datu validācija obligāti izslēdzama datu saņemšanas režīmā
data.validation=off
#Datu ierakstīšanas papildus konfigurācija
export {
root_elements_batch_size = 100
root_dagr_key_field = dagr_key #japaredz extra lauks DAGR identifikācijas key glabāšanai (string, not null, indexed)
initial_params {
offset = 0
limit = 10000
}
common_id_seq_query = "select nextval('seq');"
#max_id_query_from_root_table = #Opcionāls: pēc noklusējuma 'select coalesce(max(id),0) from <root_table>;'
child_table_id_seq_query {
address_history = "select nextval('seq');"
#address_metadata = "select nextval('seq');"
}
}
Datu ierakstīšanas datu saņēmēja datu bāzē (eksporta) konfigurācijas zem export{} key skaidrojums:
Datu kartējums darbinot savienotāju datu saņemšanas jeb jdbc_export režīmā satur konfigurāciju kā DAGR datu kopas dati izkārtojami datu saņēmēja datu bāzes tabulās. Ievērojama līdzīga sintakse kā datu nodošanas no DB režīmam, kas ir aprakstīta datu izplatīšanas sadaļā.
Taču ir jāievēro dažas prasības attiecībā uz datu bāzes struktūru:
export.root_dagr_key_field un pēc noklusējuma tam nosaukums ir dagr_key.;Papildus, uzmanība pievēršama tam, ka datu lauki ir case sensitive.
Piemēra vērtības:
#sinhronizējamās datu kopas struktūra, kurai pievienots dagr_key datu lauks
name: vzd_address
table: vzd_address
fields:
- id
- adr_code
- address
- code
- cieCode
- cieName
- dzvCode
- dzvName
- ielCode
- ielName
- lksCoordLong
- lksCoordLat
- nltCode
- nltName
- novCode
- novName
- pagCode
- pagName
- pilCode
- pilName
- typ
- pilAtvk
- novAtvk
- pagAtvk
- zipCode
- irAdrese
- dagr_key
- history *:
table: address_history
fields:
- id
- vzd_address.id
- adrese
- metadata * :
table: address_metadata
fields:
- id
- vzd_address.id
- adreses_veids
- autors
- datums
- veids
- numurs
- nosaukums
#-------------------------------------------------------------------
#definīcijas tabulām, kurās ierakstāmi dati
table: vzd_address
columns:
- id
- adr_code : Adreses kods (indekss)
- address : Adrese
- code int : Adreses kods
- cieCode long : Ciema / mazciema kods
- cieName : Ciema / mazciema nosaukums
- dzvCode long : Telpu grupas kods
- dzvName : Telpu grupa
- ielCode long : Ielas kods
- ielName : Ielas nosaukums
- lksCoordLong decimal : LKS ģeogrāfiskais garums
- lksCoordLat decimal : LKS ģeogrāfiskais platums
- nltCode long : Ēkas, apbūvei paredzēta zemes vienības (NLT) kods
- nltName : Ēka, apbūvei paredzēta zemes vienība (NLT)
- novCode long : Novada kods
- novName : Novada nosaukums
- pagCode long : Pagasta kods
- pagName : Pagasta nosaukums
- pilCode long : Pilsētas kods
- pilName : Pilsētas nosaukums
- typ long : Adresācijas objekta tips
- pilAtvk : Pilsētas ATVK kods
- novAtvk : Novada ATVK kods
- pagAtvk : Pagasta ATVK kods
- zipCode : Pasta indekss
- irAdrese boolean : Ir adrese (citas adreses neatsaucas uz šo adreses ierakstu)
- dagr_key ! : Ieraksta identifikācijas atslēga DAGR
pk: id
idx:
- dagr_key
table: address_history
columns:
- id
- vzd_address.id
- adrese : Vēsturiskā adrese
pk: id
idx:
- vzd_address_id
refs:
- vzd_address_id -> vzd_address(id) on delete cascade
table: address_metadata
columns:
- id
- vzd_address.id
- adreses_veids : Adreses veids
- autors : Autors
- datums date : Datums
- veids : Veids
- numurs : Numurs
- nosaukums : Nosaukums
pk: id
idx:
- vzd_address_id
refs:
- vzd_address_id -> vzd_address(id) on delete cascade
Datu bāzē ir jāizveido tabulas, kas atbilst connector.yaml konfigurācijā norādītajām tabulām. Ņemot vērā, ka savienotājs datu nodošanai uz datu bāzi izmanto JDBC interfeisu, jānodrošina, ka:
jdbc.data.{} sadaļā, spēs piekļūt visām connector.yaml konfigurācijā norādītajām tabulām (SELECT, INSERT, DELETE);jdbc.data.{} sadaļā, spēs izpildīt autonumerācijas sekvences.Ja ieslēdz savienotāja žurnalēšanu debug režīmā izmantojot logback.xml, tad startējot konektoru tiks izdrukāti sql skripti datu bāzes izveidei PostgreSQL sintaksē;
Ja ieslēdz savienotāja žurnalēšanu debug režīmā izmantojot logback.xml, tad startējot konektoru tiks izdrukāta dataset_name norādītā sanitizēta DAGR struktūra YAML formātā.
Palaižam datu devēja savienotāju, izpildot komandu:
java -Dconfig.file=./application.conf -Dlogback.configurationFile=./logback.xml -cp ./postgresql-42.7.4.jar;./dagr-connector.jar dagr.Connector
Komanda satur šādus argumentus:
Datu saņēmēja savienotāja darbības rezultātā datu saņēmēja datu bāzē konfigurācijā norādītajās tabulās:
dagr_key (vai citu alternatīvu nosaukumu, ja tas norādīts application.conf parametrā export.root_dagr_key_field), saturēs DAGR datu kopas ierakstu unikālās atslēgas;id datu lauks saturēs izmaiņu kārtas numuru (offset) pēdējai izmaiņai no izmaiņu servisa, kuras ietvaros ieraksts ar noteiktu unikālo atslēgu aktualizēts. Pēc šī datu lauka maksimālās vērtības saņēmēja savienotājs nosaka cik tālu ir veikta datu sinhronizācija starp DAGR un datu saņēmēja datu bāzi.