docs(dms): complete German reference contract
Module Package Release / publish-packages (push) Successful in 11s

This commit is contained in:
2026-08-23 19:31:23 +02:00
parent 7c689b6939
commit a7ba1c772d
5 changed files with 46 additions and 6 deletions
+1 -2
View File
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
[project] [project]
name = "govoplan-dms" name = "govoplan-dms"
version = "0.1.19" version = "0.1.20"
description = "GovOPlaN document-management integration module." description = "GovOPlaN document-management integration module."
readme = "README.md" readme = "README.md"
requires-python = ">=3.12" requires-python = ">=3.12"
@@ -29,4 +29,3 @@ pythonpath = ["src"]
[tool.ruff] [tool.ruff]
line-length = 100 line-length = 100
target-version = "py312" target-version = "py312"
+1 -2
View File
@@ -1,4 +1,3 @@
"""GovOPlaN DMS integration module.""" """GovOPlaN DMS integration module."""
__version__ = "0.1.19" __version__ = "0.1.20"
+27 -1
View File
@@ -33,7 +33,7 @@ from govoplan_dms.backend.dvelop_d3 import (
MODULE_ID = "dms" MODULE_ID = "dms"
MODULE_VERSION = "0.1.19" MODULE_VERSION = "0.1.20"
READ_SCOPE = "dms:integration:read" READ_SCOPE = "dms:integration:read"
ADMIN_SCOPE = "dms:integration:admin" ADMIN_SCOPE = "dms:integration:admin"
D3_ARCHIVE_CAPABILITY = record_archive_capability(DVELOP_D3_PROVIDER_ID) D3_ARCHIVE_CAPABILITY = record_archive_capability(DVELOP_D3_PROVIDER_ID)
@@ -176,6 +176,7 @@ manifest = ModuleManifest(
"body": "DMS verantwortet produktspezifische Repository-Erkennung, Quellzuordnung, Versions- und Referenzsemantik sowie Zielbelege. Files bleibt für Binärdaten zuständig; Records verwaltet Veraktung, Aufbewahrung, Sperren, Aussonderung und Archivübergabe. Eine Anbieterdeklaration beweist weder Gesundheit noch Konformität eines konfigurierten Ziels.", "body": "DMS verantwortet produktspezifische Repository-Erkennung, Quellzuordnung, Versions- und Referenzsemantik sowie Zielbelege. Files bleibt für Binärdaten zuständig; Records verwaltet Veraktung, Aufbewahrung, Sperren, Aussonderung und Archivübergabe. Eine Anbieterdeklaration beweist weder Gesundheit noch Konformität eines konfigurierten Ziels.",
} }
}, },
metadata={"kind": "reference"},
order=100, order=100,
), ),
DocumentationTopic( DocumentationTopic(
@@ -223,6 +224,31 @@ manifest = ModuleManifest(
"No secret is included in plans, diagnostics, or retained evidence.", "No secret is included in plans, diagnostics, or retained evidence.",
], ],
}, },
structured_translation_version="1",
structured_translations={
"de": {
"prerequisites": [
"Ein d.velop-d3-Mandant und ein DMSApp-Endpunkt sind verfügbar.",
"Die Mandantenadministration hat die Quellzuordnung erstellt und geprüft.",
"Die Authentifizierung liegt in einem bereichsbegrenzten Access-Berechtigungsnachweis.",
],
"steps": [
"Vorabprüfung für Repository und Objektdefinitionen ausführen.",
"Konfigurierte Quellkategorie, Quell-ID und Mapping-Revision prüfen.",
"Den prüfsummengebundenen Ablageplan ohne Ausführung erzeugen und vergleichen.",
"Nachweise zu Zielverwahrung, Abgleich und Wiederherstellung abschließen, bevor die Übergabe aktiviert wird.",
],
"limitations": [
"Diese Version aktiviert keine reale Records-Übergabe.",
"Die Repository-Erkennung allein beweist weder Quellzuordnung noch Archivverwahrung.",
],
"consequences": [
"Eine geänderte Mapping-Revision macht einen früheren Plan ungültig.",
"Eine Zeitüberschreitung bedeutet niemals Erfolg und erfordert einen Zielabgleich.",
"Pläne, Diagnosen und aufbewahrte Nachweise enthalten keine Geheimnisse.",
],
}
},
order=110, order=110,
), ),
), ),
+16
View File
@@ -0,0 +1,16 @@
from __future__ import annotations
from govoplan_core.core.modules import documentation_structured_translation_issues
from govoplan_dms.backend.manifest import manifest
def test_dms_german_reference_contract_is_complete() -> None:
topics = {topic.id: topic for topic in manifest.documentation}
assert topics["dms.boundary"].metadata["kind"] == "reference"
workflow = topics["dms.dvelop-d3"]
assert workflow.metadata["kind"] == "workflow"
assert workflow.structured_translation_version == "1"
assert "de" in workflow.structured_translations
assert documentation_structured_translation_issues(workflow) == ()
for topic in topics.values():
assert all(topic.translations["de"].get(key) for key in ("title", "summary", "body"))
+1 -1
View File
@@ -112,7 +112,7 @@ def test_profile_rejects_origin_paths_and_embedded_credentials() -> None:
def test_manifest_declares_d3_without_claiming_target_test() -> None: def test_manifest_declares_d3_without_claiming_target_test() -> None:
manifest = get_manifest() manifest = get_manifest()
assert manifest.version == "0.1.19" assert manifest.version == "0.1.20"
assert manifest.external_providers[0].id == "dms.dvelop_d3" assert manifest.external_providers[0].id == "dms.dvelop_d3"
assert manifest.architecture is not None assert manifest.architecture is not None
assert manifest.architecture.target_tested_providers == () assert manifest.architecture.target_tested_providers == ()