1
0
Files
Rihards f7610a097c v1.1.0: UAPF v1.1 SSOT conformance rebuild
Replaces non-conformant v0.1.0 manifest shape:
- Add uapf.yaml (kind: uapf.package) — SSOT 07-package-format mandatory
- Add metadata/ownership.yaml + metadata/lifecycle.yaml — mandatory
- Add resources/mappings.yaml — mandatory for Level 4
- Fix manifest: drop non-schema fields (requires_capabilities,
  guardrails, legal_basis, eu_ai_act_classification, profiles_supported);
  fix owners[].type organisation -> team; remove non-schema paths keys
- Declare dependency on dev.uapf.semantic-document-analysis@^1.0.0
- manifest.json kept as engine-compat copy (uapf-engine@1.0.0 reads it)

Validates clean against UAPFormat/UAPF-specification schemas:
uapf-manifest, ownership, lifecycle, resource-mapping.
2026-05-16 09:32:34 +00:00

130 lines
4.7 KiB
YAML

kind: uapf.resources.mapping
# ─── Targets: who/what fulfills the work ─────────────────────────
targets:
- id: system.opendms-document-api
type: system_api
name: OpenDMS document API
description: Hosting DMS that stores the iesniegums and returns its content + metadata.
capabilities:
- capability.document.fetch
- capability.data.write
endpoint: "uapf-host:/api/documents"
authentication:
method: oauth2
configRef: "host-oauth"
- id: agent.tiesibsargs-pii-redactor
type: ai_agent
name: PII redaction agent
description: Masks personal data from iesniegums text before downstream AI processing. Enforces GDPR Art. 5 minimisation.
capabilities:
- capability.ai.redact
- id: agent.tiesibsargs-fact-extractor
type: ai_agent
name: Structured fact extractor
description: Extracts typed facets (mentions_child, ongoing_harm, vulnerable_group, criminal_indication, language, sector) from redacted text. Consumed by the three downstream DMN decisions.
capabilities:
- capability.ai.extract
- id: system.opendms-event-bus
type: system_api
name: OpenDMS event bus
description: CloudEvents v1.0 receiver. Downstream subscribers consume document.classified.v1 events.
capabilities:
- capability.event.emit
- id: role.tiesibsargs-iesniegumu-koordinators
type: human_role
name: Iesniegumu koordinators
description: Human reviewer required by EU AI Act Art. 14 when humanValidationStatus is PENDING or REQUIRED. Fallback for low-confidence classifications.
# ─── Bindings: BPMN/DMN element → target ─────────────────────────
bindings:
# BPMN service tasks
- source: { type: bpmn.serviceTask, ref: FetchDocument }
targetId: system.opendms-document-api
mode: autonomous
contract:
input:
- { name: documentId, type: string, required: true }
output:
- { name: title, type: string }
- { name: docType, type: string }
- { name: regNumber, type: string }
- { name: text, type: string }
timeout: "30s"
retries: { maxAttempts: 3, backoffMs: 1000 }
requiredCapabilities: [capability.document.fetch]
- source: { type: bpmn.serviceTask, ref: RedactPii }
targetId: agent.tiesibsargs-pii-redactor
mode: autonomous
contract:
input:
- { name: text, type: string, required: true }
output:
- { name: redactedText, type: string }
- { name: detections, type: array }
timeout: "10s"
requiredCapabilities: [capability.ai.redact]
fallback:
onError: "fail"
onTimeout: "fail"
- source: { type: bpmn.serviceTask, ref: ExtractFacets }
targetId: agent.tiesibsargs-fact-extractor
mode: autonomous
contract:
input:
- { name: text, type: string, required: true }
output:
- { name: extracted, type: object }
- { name: confidence, type: number }
- { name: modelUsed, type: string }
timeout: "30s"
retries: { maxAttempts: 2, backoffMs: 2000 }
requiredCapabilities: [capability.ai.extract]
fallback:
targetId: role.tiesibsargs-iesniegumu-koordinators
onError: "escalate"
onTimeout: "escalate"
- source: { type: bpmn.serviceTask, ref: RecordClassification }
targetId: system.opendms-document-api
mode: autonomous
contract:
input:
- { name: documentId, type: string, required: true }
- { name: classification, type: object, required: true }
timeout: "10s"
requiredCapabilities: [capability.data.write]
- source: { type: bpmn.serviceTask, ref: EmitClassifiedEvent }
targetId: system.opendms-event-bus
mode: autonomous
contract:
input:
- { name: eventType, type: string, required: true }
- { name: payload, type: object, required: true }
timeout: "5s"
requiredCapabilities: [capability.event.emit]
# BPMN business rule tasks → DMN decisions
- source: { type: dmn.decision, ref: classify-topic }
targetId: agent.tiesibsargs-fact-extractor
mode: autonomous
notes: "DMN evaluation is local to the engine; AI agent supplies the input facets."
- source: { type: dmn.decision, ref: determine-priority }
targetId: agent.tiesibsargs-fact-extractor
mode: autonomous
notes: "Driven by topic + ongoing_harm + vulnerable_group + mentions_child facets."
- source: { type: dmn.decision, ref: route-to-department }
targetId: agent.tiesibsargs-fact-extractor
mode: autonomous
notes: "Topic → department mapping. Output is consumed by downstream human workflow."