1
0

B03 Valsts budžeta izpilde: mērķa shēma, avota un mērķa datu līgumi, pārveidošanas noteikumi

- schemas/valsts-budzeta-izpilde-0.1.xsd
- contracts/B03-valsts-budzeta-izpilde.source.odcs.yaml (Valsts kases CSV)
- contracts/B03-valsts-budzeta-izpilde.odcs.yaml (ģenerēts no XSD)
- mappings/B03-izpilde.yaml, docs/IZPILDE.md; CHANGELOG 0.2.0

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016679RwmHsuTFfxt26wP6rk
This commit is contained in:
2026-10-11 10:49:19 +00:00
parent 6a89b97baf
commit 88577135b5
8 changed files with 1017 additions and 2 deletions

View File

@@ -0,0 +1,106 @@
# ODCS v3 datu līgums: B03 Valsts budžeta izpilde — AVOTS (Valsts kases CSV, kā publicēts data.gov.lv).
# Apraksta, ko VDE sagaida no Valsts kases datnes. Ja Valsts kase maina kolonnas vai kodus, ielāde to konstatē un reģistrē kā kļūdu.
# Mērķa (pārveidotās) datu kopas līgums: contracts/B03-valsts-budzeta-izpilde.odcs.yaml. Pārveidošana: mappings/B03-izpilde.yaml.
apiVersion: v3.0.2
kind: DataContract
id: urn:pppa:cac:contract:B03-source
name: Valsts budžeta izpilde — Valsts kases avota datne
version: 0.1.0
status: active
domain: Valsts kā kods (Country as Code)
dataProduct: Valsts budžeta izpilde
tenant: PPP Asociācija (PPPA)
description:
purpose: >-
Nekonsolidēta valsts pamatbudžeta un valsts speciālā budžeta izpilde pa mēnešiem sadalījumā pa iestādēm, gadskārtējā valsts
budžeta likumā apstiprinātām programmām un apakšprogrammām un ieņēmumu, izdevumu ekonomiskās un finansēšanas klasifikāciju
kodiem, atbilstoši Valsts kases valsts budžeta informācijas sistēmā reģistrētajiem datiem.
usage: Avots datu kopai B03 VDE. Datne tiek lejupielādēta, pārbaudīta pret šo līgumu un pārveidota pēc mappings/B03-izpilde.yaml.
limitations: >-
Summas ir mēneša apjoms (nevis uzkrājums). Datnē nav apstiprinātā plāna un gada laikā precizētā plāna — tikai izpilde.
Valsts pamatbudžeta nodokļu ieņēmumi datnē nav (ir iestāžu līmeņa resursi). Kārtējā gada datne tiek aizstāta katru mēnesi;
iepriekšējā gada datne pēc gada slēgšanas var tikt precizēta.
servers:
- server: data.gov.lv
type: custom
format: csv
description: Latvijas Atvērto datu portāls (CKAN), datu kopa ar vienu CSV datni katram gadam
customProperties:
- {property: dataset, value: "https://data.gov.lv/dati/lv/dataset/valsts-budzeta-izpilde-pa-iestadem-budzeta-programmam-apaksprogrammam-un-klasifikacijas-kodiem"}
- {property: api, value: "https://data.gov.lv/dati/api/3/action/package_show?id=valsts-budzeta-izpilde-pa-iestadem-budzeta-programmam-apaksprogrammam-un-klasifikacijas-kodiem"}
- {property: filePattern, value: "adkopai_(\\d{4})\\.csv$"}
- {property: encoding, value: utf-8-sig}
- {property: delimiter, value: ","}
- {property: quote, value: "\""}
- {property: decimalSeparator, value: "."}
schema:
- name: izpilde
logicalType: object
physicalType: csv-file
physicalName: "vb_izpilde_pa_iestadem_budzeta_progr_apakspr_adkopai_<GGGG>.csv"
description: Viena rinda = viena summa par mēnesi vienā griezumā. Kolonnu secība ir fiksēta; virsrakstu rinda ir obligāta.
customProperties:
- {property: lakehouseTable, value: cac_bronze.vk_budget_execution}
properties:
- {name: gads, physicalName: Gads, logicalType: integer, required: true, description: Budžeta gads; sakrīt ar gadu datnes nosaukumā}
- {name: menesis, physicalName: Menesis_Atslega, logicalType: integer, required: true, description: "Mēnesis 1–12", logicalTypeOptions: {minimum: 1, maximum: 12}}
- {name: menesis_nosaukums, physicalName: Menesis_nosaukums, logicalType: string, required: true}
- {name: ministrija_kods, physicalName: Ministrija_Atslega, logicalType: string, required: true, description: Budžeta resora kods (2 cipari), logicalTypeOptions: {pattern: "[0-9]{2}"}}
- {name: ministrija, physicalName: Ministrija_nosaukums, logicalType: string, required: true}
- {name: resora_veids, physicalName: Resora_veids, logicalType: string, required: true}
- {name: iestade_kods, physicalName: Iestade_Atslega, logicalType: string, required: true, description: Iestādes kods Valsts kases sistēmā}
- {name: iestade, physicalName: Iestade_nosaukums, logicalType: string, required: true}
- {name: nmr, physicalName: Iestades_NMR, logicalType: string, required: true, description: Iestādes reģistrācijas numurs, logicalTypeOptions: {pattern: "[0-9]{11}"}}
- {name: budzeta_tips_kods, physicalName: Budzeta_tips_Atslega, logicalType: string, required: true,
quality: [{type: library, rule: validValues, validValues: ["P", "S", "6", "7"]}]}
- {name: budzeta_tips, physicalName: Budzeta_tips_nosaukums, logicalType: string, required: true}
- {name: programma_kods, physicalName: Programma_Atslega, logicalType: string, required: true, logicalTypeOptions: {pattern: "[0-9]{2}\\.[0-9]{2}\\.[0-9]{2}"}}
- {name: programma, physicalName: Programma_nosaukums, logicalType: string, required: true}
- {name: apaksprogramma_kods, physicalName: Apaksprogramma_Atslega, logicalType: string, required: true, logicalTypeOptions: {pattern: "[0-9]{2}\\.[0-9]{2}\\.[0-9]{2}"}}
- {name: apaksprogramma, physicalName: Apaksprogramma_nosaukums, logicalType: string, required: true}
- {name: budzeta_bloks, physicalName: Buzeta_bloks, logicalType: string, required: false, description: "Kolonnas nosaukumā avotā ir drukas kļūda (Buzeta)",
quality: [{type: library, rule: validValues, validValues: ["Pamatfunkcijas", "Ārvalstu finanšu palīdzība"]}]}
- {name: funkcija_l1_kods, physicalName: Funkcija_augstakais_limenis_Atslega, logicalType: string, required: false}
- {name: funkcija_l1, physicalName: Funkcija_augstakais_limenis_Nosaukums, logicalType: string, required: false}
- {name: funkcija_kods, physicalName: Funkcija_zemakaja_limeni_Atslega, logicalType: string, required: false, logicalTypeOptions: {pattern: "[0-9]{2}\\.[0-9]{3}"}}
- {name: funkcija, physicalName: Funkcija_zemakaja_limeni_nosaukums, logicalType: string, required: false}
- {name: saistibu_veids_kods, physicalName: Saistibu_veids_Atslega, logicalType: string, required: false}
- {name: saistibu_veids, physicalName: Saistibu_veids_nosaukums, logicalType: string, required: false}
- {name: projekta_kods, physicalName: Projekta_arejais_kods_Atslega, logicalType: string, required: false}
- {name: projekts, physicalName: Projekts_nosaukums, logicalType: string, required: false}
- {name: klasifikacija, physicalName: Klasifikacija, logicalType: string, required: true,
quality: [{type: library, rule: validValues, validValues: ["Ieņēmumi", "Izdevumi", "Finansēšana"]}]}
- {name: ekk1, physicalName: Vienotais_EKK_Atslega_1_limenis, logicalType: string, required: false}
- {name: ekk2, physicalName: Vienotais_EKK_Atslega_2_limenis, logicalType: string, required: false}
- {name: ekk3, physicalName: Vienotais_EKK_Atslega_3_limenis, logicalType: string, required: false}
- {name: ekk4, physicalName: Vienotais_EKK_Atslega_4_limenis, logicalType: string, required: false}
- {name: ekk5, physicalName: Vienotais_EKK_Atslega_5_limenis, logicalType: string, required: false}
- {name: ekk6, physicalName: Vienotais_EKK_Atslega_6_limenis, logicalType: string, required: false}
- {name: ekk7, physicalName: Vienotais_EKK_Atslega_7_limenis, logicalType: string, required: true, description: Zemākā līmeņa klasifikācijas kods}
- {name: ekk7_nosaukums, physicalName: Vienotais_EKK_Nosaukums_7_limenis, logicalType: string, required: false}
- {name: likuma_griezuma_ekk, physicalName: Likuma_griezuma_EKK, logicalType: string, required: false, description: "Pozīcija likuma pielikumu griezumā: kods un nosaukums, piemēram „1000 Atlīdzība”"}
- {name: konsolidacija, physicalName: Konsolidacija, logicalType: string, required: true,
quality: [{type: library, rule: validValues, validValues: ["Visu resoru NETO - bez transfertiem", "+ pamatbudžeta savstarpējie transferti un atmaksas",
"+ pamatbudžeta/speciālā budžeta savstarpējie transferti", "+ speciālā budžeta savstarpējie transferti"]}]}
- {name: valuta, physicalName: Datu_valuta, logicalType: string, required: true, quality: [{type: library, rule: validValues, validValues: ["Euro"]}]}
- {name: summa, physicalName: Summa, logicalType: number, required: true, description: Summa euro par mēnesi (punkts kā decimālatdalītājs)}
quality:
- {name: source_columns_match, type: custom, engine: cac-lakehouse, implementation: "app.cac_execution:source_columns_match",
description: "Datnes virsrakstu rinda sakrīt ar līgumā noteiktajām kolonnām un to secību", dimension: conformity}
- {name: source_values_valid, type: custom, engine: cac-lakehouse, implementation: "app.cac_execution:source_values_valid",
description: "Obligātās kolonnas aizpildītas; vērtības atbilst šablonam vai pieļaujamo vērtību sarakstam; summa ir skaitlis; gads sakrīt ar datni", dimension: validity}
- {name: source_key_unique, type: custom, engine: cac-lakehouse, implementation: "app.cac_execution:source_key_unique",
description: "Rindas atslēga (mappings/B03-izpilde.yaml, id.key) ir unikāla", dimension: uniqueness}
slaProperties:
- {property: frequency, value: 1, unit: d, element: "pārbaude katru dienu (cron 03:30 UTC); ielāde, ja datne portālā mainījusies"}
- {property: latency, value: 1, unit: month, element: "Valsts kase publicē iepriekšējā mēneša izpildi mēneša sākumā"}
team:
- {role: owner, name: "Valsts kase, Pārskatu departaments"}
- {role: data steward, name: PPP Asociācija (PPPA)}
support:
- {channel: email, url: "mailto:pd@kase.gov.lv", description: Datu turētājs (Valsts kase)}
- {channel: issues, url: "https://processgit.org/Valsts-Pirmkods/Budget-as-Code/issues", description: Līgums un pārveidošana (PPPA)}
customProperties:
- {property: sourceId, value: B03}
- {property: licence, value: CC0-1.0}
- {property: years, value: "2024, 2025, 2026"}