docs: localize audit guidance
Module Package Release / publish-packages (push) Successful in 11s

This commit is contained in:
2026-08-22 08:27:57 +02:00
parent 869891f7ec
commit f71434ec6d
5 changed files with 59 additions and 4 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@govoplan/audit-webui",
"version": "0.1.18",
"version": "0.1.19",
"private": true,
"type": "module",
"main": "webui/src/index.ts",
+1 -1
View File
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
[project]
name = "govoplan-audit"
version = "0.1.18"
version = "0.1.19"
description = "GovOPlaN audit platform module."
readme = "README.md"
requires-python = ">=3.12"
+48 -1
View File
@@ -74,7 +74,7 @@ def _dsar_provider(_context: ModuleContext) -> AuditDsarProvider:
manifest = ModuleManifest(
id="audit",
name="Audit",
version="0.1.18",
version="0.1.19",
permissions=AUDIT_PERMISSIONS,
role_templates=AUDIT_ROLE_TEMPLATES,
required_capabilities=(
@@ -113,6 +113,20 @@ manifest = ModuleManifest(
documentation_types=("admin", "user"),
audience=("data_subject", "auditor", "security_officer", "operator"),
related_modules=("core", "access", "policy", "ops"),
translations={
"de": {
"title": "Datenschutzanfragen für Audit",
"summary": "Minimierte, betroffenenbezogene Rechenschaftsnachweise in Auskunftspakete aufnehmen und dabei die unveränderliche Aufbewahrung wahren.",
"body": (
"Audit korreliert genaue Konto-, Mitgliedschafts-, Identitäts- oder Benutzerkennungen ausschließlich im aktiven Mandanten. "
"Beigetragen werden Akteursdaten aus Audit-Einträgen, strukturierte Akteursumschläge von Plattformereignissen, Zuordnungen manueller Wiederholungen und Anforderungszuordnungen von Nachweispaketen. "
"Die Projektion erhält Handlung, Objekt, Ereignis, Trace, Quelle, Richtlinie, Status, Zeitangaben und Prüfverweise, die zur Erklärung der Beteiligung der betroffenen Person erforderlich sind. "
"Beliebige Audit-Details, Ereignisnutzdaten, institutioneller Kontext, Zustellschlüssel und -fehler, Wiederholungsgründe, Anfragenutzdaten, erzeugte Paketnutzdaten und Zugangsdaten bleiben ausgeschlossen. "
"Optionale genaue Datensatzverweise grenzen Ergebnisse ein, ersetzen aber niemals die Bestätigung der Akteurszuordnung. Systemweite und mandantenübergreifende Nachweise werden nicht in Mandantenanfragen aufgenommen. "
"Alle Löschaktionen von Audit sind reine Aufbewahrungsentscheidungen und nicht ausführbar, weil die Datensätze unveränderliche Rechenschaftsnachweise unter Aufbewahrung und rechtlicher Sperre sind."
),
}
},
metadata={
"help_contexts": [
"audit.admin.tenant",
@@ -139,6 +153,16 @@ manifest = ModuleManifest(
body="Audit views are permission- and tenant-scoped. Entries are evidence, not editable business records. Sensitive payloads may be redacted while stable resource, actor, outcome, request, run, and trace references remain available for investigation.",
documentation_types=("user",),
audience=("auditor", "tenant_admin", "operator"),
translations={
"de": {
"title": "Berechtigte Audit-Nachweise lesen",
"summary": "Der Audit-Verlauf erklärt, wer eine gesteuerte Handlung wann ausgeführt hat und welche Ressourcen- und Trace-Zusammenhänge beteiligt waren.",
"body": (
"Audit-Ansichten sind nach Berechtigung und Mandant begrenzt. Einträge sind Nachweise und keine bearbeitbaren Fachdaten. "
"Sensible Nutzdaten können geschwärzt sein, während stabile Verweise auf Ressource, Akteur, Ergebnis, Anfrage, Lauf und Trace für Untersuchungen verfügbar bleiben."
),
}
},
metadata={
"kind": "reference",
"help_contexts": [
@@ -157,6 +181,17 @@ manifest = ModuleManifest(
documentation_types=("admin",),
audience=("auditor", "security_officer", "operator"),
related_modules=("policy", "ops"),
translations={
"de": {
"title": "Audit-Aufzeichnung, Aufbewahrung und Ereigniszustellung betreiben",
"summary": "Audit verwaltet dauerhafte Audit-Datensätze, Aufbewahrungsvorgänge und die transaktionale Plattformereignis-Outbox.",
"body": (
"Module zeichnen begrenzte Audit-Fakten über die Audit-Fähigkeit auf. Gesteuerte Plattformereignisse werden zusammen mit Wiederholungs- und Zustellmetadaten in die Outbox übernommen, sodass ein ausgefallener Verbraucher die ursprüngliche Transaktion nicht auslöscht. "
"Die Worker-Zustellung wird nach Mandantenberechtigung getrennt; ein nicht verfügbarer Verbraucher behält seine dauerhafte Zustellung und erfasst ein Ergebnis, das einen betrieblichen Eingriff verlangt, statt das Ereignis zu bestätigen. "
"Aufbewahrung und destruktive Ausmusterung müssen die konfigurierten Nachweis- und Wiederherstellungsgarantien erhalten."
),
}
},
metadata={
"kind": "reference",
"help_contexts": [
@@ -180,6 +215,18 @@ manifest = ModuleManifest(
),
),
related_modules=("policy", "files"),
translations={
"de": {
"title": "Audit-Nachweise exportieren und unabhängig prüfen",
"summary": "Berechtigte Prüfer können begrenzte, geschwärzte Nachweispakete mit kanonischen Hashes und optionalen vertrauenswürdigen Signaturen exportieren.",
"body": (
"Mandantenexporte erfordern audit:evidence:export und bleiben mandantenbezogen; systemweite oder unbeschränkte Exporte erfordern audit:system_evidence:export. "
"Jedes Paket enthält versionierte Audit-Datensatz-DTOs, Trace- sowie Richtlinien- und Quellenherkunft, externe Nachweisverweise anderer Module, Schwärzungserklärungen und kanonische Hashes, jedoch niemals vollständige Nachrichten, Empfängerlisten, Geheimnisse, Zugangsdaten oder Dateiinhalte. "
"Erzeugung und Download werden auditiert. Verwenden Sie govoplan-audit-verify mit optionalen vertrauenswürdigen öffentlichen Ed25519-Schlüsseln und externen Nachweisdateien, um gültige, unvollständige, nicht prüfbare, nicht unterstützte und manipulierte Nachweise ohne Datenbankzugriff zu unterscheiden. "
"Module liefern externe Verweise als serialisierte, mit Core EvidenceReference kompatible Fakten oder über die Exportanfrage; sie importieren keine Audit-Interna."
),
}
},
metadata={
"kind": "workflow",
"help_contexts": [
+8
View File
@@ -40,6 +40,14 @@ class AuditModuleContractTests(unittest.TestCase):
operations = topics["audit.recording-retention-and-outbox"]
self.assertIn("audit.retention", operations.metadata["help_contexts"])
def test_public_documentation_has_complete_german_baseline(self) -> None:
for topic in get_manifest().documentation:
german = topic.translations.get("de", {})
self.assertTrue(
all(german.get(field) for field in ("title", "summary", "body")),
topic.id,
)
def test_evidence_export_permissions_are_module_owned_and_scope_separated(self) -> None:
manifest = get_manifest()
permissions = {item.scope: item for item in manifest.permissions}
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@govoplan/audit-webui",
"version": "0.1.18",
"version": "0.1.19",
"private": true,
"type": "module",
"main": "src/index.ts",