1
0
Files
Architecture-as-Code/contracts/B09-digitalas-parvaldes-arhitekturas.odcs.yaml
Rihards Gailums 3574c8133f Architecture-as-Code 0.1.0: tikai dati un definīcijas; jomu katalogs (21 VARAM joma), JSON shēma, B09 datu līgums, pārbaudītājs
- kultūras un valodu tehnoloģiju joma → domains/kultura-valoda, avota PDF → sources/kultura-valoda
- izņemts KISC MCP servera kods, Docker un servera identitātes datnes (paliek KISC projekta repozitorijā)
- domenas.yaml, schemas/arhitektura-0.1.schema.json, contracts/B09-digitalas-parvaldes-arhitekturas.odcs.yaml, tools/validate.py

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016679RwmHsuTFfxt26wP6rk
2026-10-11 11:52:49 +00:00

101 lines
7.8 KiB
YAML

# ODCS v3 datu līgums: B09 Digitālās pārvaldes arhitektūras (arhitektūra kā kods)
# Shēma: schemas/arhitektura-0.1.schema.json (JSON Schema 2020-12). Šī līguma schema daļa apraksta to, ko VDZP ielādē;
# pilnā struktūra un pieļaujamās vērtības ir JSON shēmā.
apiVersion: v3.0.2
kind: DataContract
id: urn:pppa:cac:contract:B09
name: Digitālās pārvaldes arhitektūras (arhitektūra kā kods)
version: 0.1.0
status: active
domain: Valsts kā kods (Country as Code)
dataProduct: Digitālās pārvaldes arhitektūras
tenant: PPP Asociācija (PPPA)
description:
purpose: >-
VARAM digitālās pārvaldes arhitektūras horizontālās un nozaru jomas kā dati: viens jomu katalogs (domenas.yaml) ar visām jomām,
to izstrādes vadītāju iestādi, VARAM apstiprinājuma statusu un dokumentu saitēm, un katrai jomai, kas pārveidota kodā, —
funkcijas, pakalpojumi, informācijas resursi, informācijas sistēmas, organizācijas, mērķi un saites starp tiem.
usage: Mašīnlasāma datu apmaiņa; ielāde VDZP katru dienu; AI aģentu vaicājumi caur MCP.
limitations: >-
Koncepcijas demonstrācija, nav oficiāls izdevums. Juridiski un metodiski saistošs ir VARAM publicētais arhitektūras apraksts.
Kodā pārveidotas ne visas jomas — stāvoklis katrai jomai ir domenas.yaml (as_code.status). Identifikatori jomā ir lokāli;
pilnais identifikators ir <jomas slug>:<lokālais ID>.
servers:
- server: processgit
type: custom
format: yaml
description: ProcessGit repozitorijs (Gitea API v1)
customProperties:
- {property: url, value: "https://processgit.org/Valsts-Pirmkods/Architecture-as-Code"}
- {property: ref, value: main}
- {property: catalogue, value: domenas.yaml}
- {property: path, value: "domains/*/manifest.yaml (un manifestā norādītie reģistri)"}
- {property: schema, value: "https://processgit.org/Valsts-Pirmkods/Architecture-as-Code/src/branch/main/schemas/arhitektura-0.1.schema.json"}
schema:
- name: Domain
logicalType: object
physicalType: yaml-object
physicalName: "domenas.yaml#/domains[]"
description: Viena VARAM arhitektūras joma (horizontālā, nozaru vai apakšjoma) un tās stāvoklis kodā.
customProperties: [{property: lakehouseTable, value: cac_bronze.arch_domain}, {property: jsonSchema, value: "#/$defs/CatalogueDomain"}]
properties:
- {name: slug, logicalType: string, required: true, primaryKey: true, unique: true, logicalTypeOptions: {pattern: "^[a-z0-9]+(-[a-z0-9]+)*$"}}
- {name: title, logicalType: string, required: true}
- {name: kind, logicalType: string, required: true, quality: [{type: library, rule: validValues, validValues: [horizontal, sectoral, subdomain]}]}
- {name: parent, logicalType: string, required: false, description: Apakšjomai — jomas slug}
- {name: lead_institution, logicalType: string, required: true, description: "Iestāde, kas vada arhitektūras apraksta izstrādi"}
- {name: lead_vpk_id, logicalType: string, required: false, description: Iestādes VPK ID (B01), logicalTypeOptions: {pattern: "^[0-9]{2}-[0-9]{4}$"}}
- {name: varam_status, logicalType: string, required: true, quality: [{type: library, rule: validValues, validValues: [approved, in_review, in_development, not_started]}]}
- {name: approved, logicalType: date, required: false}
- {name: description_url, logicalType: string, required: false, description: VARAM publicētais arhitektūras apraksts}
- {name: as_code.status, logicalType: string, required: true, quality: [{type: library, rule: validValues, validValues: [transformed, in_progress, not_started]}]}
- {name: as_code.path, logicalType: string, required: false, description: "Jomas mape domains/<slug>"}
- name: Element
logicalType: object
physicalType: yaml-object
physicalName: "domains/<slug>/registers/**#/items[]"
description: Viens arhitektūras elements jomā — organizācija, funkcija, pakalpojums, informācijas resurss, informācijas sistēma, mērķis, ceļa kartes pasākums, mijiedarbība vai risks.
customProperties: [{property: lakehouseTable, value: cac_bronze.arch_register}, {property: jsonSchema, value: "#/$defs/Organization, Function, Component, Goal, Item"}]
properties:
- {name: uid, logicalType: string, required: true, primaryKey: true, unique: true, description: "<jomas slug>:<id>, piemēram kultura-valoda:func.01 (veido savienotājs)"}
- {name: id, logicalType: string, required: true, description: Lokālais identifikators jomā, logicalTypeOptions: {pattern: "^[a-z][a-z_]*(\\.[A-Za-z0-9_-]+)+$"}}
- {name: entity_type, logicalType: string, required: true, quality: [{type: library, rule: validValues, validValues: [organisation, function, service, information_resource, system, goal, roadmap_item, interaction, risk, as_is_component]}]}
- {name: name, logicalType: string, required: true, description: name vai title}
- {name: subdomain, logicalType: string, required: false}
- {name: status, logicalType: string, required: false, description: status vai change_status}
- {name: vpk_id, logicalType: string, required: false, description: Organizācijai — VPK ID (B01)}
- {name: attributes, logicalType: object, required: false, description: Pārējie elementa lauki, kā autorēti}
- name: Edge
logicalType: object
physicalType: yaml-object
physicalName: "domains/<slug>/registers/99-relations/edges.yaml#/edges[]"
description: Saite starp diviem vienas jomas elementiem.
customProperties: [{property: lakehouseTable, value: cac_bronze.arch_edge}, {property: jsonSchema, value: "#/$defs/Edge"}]
properties:
- {name: from, logicalType: string, required: true}
- {name: type, logicalType: string, required: true, description: "has_goal, has_function, has_service, has_information_resource, has_system, performed_by …"}
- {name: to, logicalType: string, required: true}
quality:
- {name: schema_valid, type: custom, engine: json-schema, implementation: schemas/arhitektura-0.1.schema.json,
description: "Katalogs, jomu manifesti un reģistri atbilst JSON shēmai (katra datne — savas lomas tipam, x-roles)", dimension: conformity}
- {name: catalogue_valid, type: custom, engine: cac-lakehouse, implementation: "app.cac_processgit:arch_catalogue_valid",
description: "Katalogā katra joma unikāla; katrai kodā pārveidotajai jomai ir mape ar manifestu; katra mape ir katalogā", dimension: consistency}
- {name: ids_unique, type: custom, engine: cac-lakehouse, implementation: "app.cac_processgit:arch_ids_unique", description: Lokālie identifikatori jomā ir unikāli, dimension: uniqueness}
- {name: edges_resolve, type: custom, engine: cac-lakehouse, implementation: "app.cac_processgit:arch_edges_resolve", description: "Katras saites abi gali ir šīs jomas elementi", dimension: consistency}
- {name: organization_has_vpk_id, type: custom, engine: cac-lakehouse, implementation: "app.cac_processgit:arch_org_vpk",
description: "Organizācija sasaistīta ar VPK ID — norādīts reģistrā (vpk_id) vai atrasts pēc nosaukuma", dimension: completeness}
- {name: lead_has_vpk_id, type: custom, engine: cac-lakehouse, implementation: "app.cac_processgit:arch_lead_vpk",
description: "Jomas izstrādes vadītājai iestādei norādīts VPK ID", dimension: completeness}
slaProperties:
- {property: frequency, value: 1, unit: d, element: "pull ingest katru dienu 06:30 Rīgas laikā"}
- {property: retention, value: "visas versijas (git vēsture)"}
team:
- {role: owner, name: "VARAM (digitālās pārvaldes arhitektūras ietvars); jomu arhitektūru turētāji — jomu vadošās iestādes"}
- {role: data steward, name: PPP Asociācija (PPPA)}
support:
- {channel: issues, url: "https://processgit.org/Valsts-Pirmkods/Architecture-as-Code/issues"}
customProperties:
- {property: sourceId, value: B09}
- {property: identifiers, value: "joma <slug>; elements <slug>:<lokālais ID>"}
- {property: validator, value: tools/validate.py}