Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
26ec2ca5a9 | ||
|
|
f2d7b9b29a |
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@govoplan/audit-webui",
|
"name": "@govoplan/audit-webui",
|
||||||
"version": "0.1.19",
|
"version": "0.1.20",
|
||||||
"private": true,
|
"private": true,
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"main": "webui/src/index.ts",
|
"main": "webui/src/index.ts",
|
||||||
|
|||||||
+1
-1
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|||||||
|
|
||||||
[project]
|
[project]
|
||||||
name = "govoplan-audit"
|
name = "govoplan-audit"
|
||||||
version = "0.1.19"
|
version = "0.1.20"
|
||||||
description = "GovOPlaN audit platform module."
|
description = "GovOPlaN audit platform module."
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
requires-python = ">=3.12"
|
requires-python = ">=3.12"
|
||||||
|
|||||||
@@ -0,0 +1,32 @@
|
|||||||
|
"""German translations for public structured documentation metadata."""
|
||||||
|
|
||||||
|
from __future__ import annotations
|
||||||
|
|
||||||
|
from typing import Any
|
||||||
|
|
||||||
|
|
||||||
|
GERMAN_STRUCTURED_TRANSLATIONS: dict[str, dict[str, Any]] = {'audit.data-subject-requests': {'consequence_classes': {'export_actor_evidence': 'Retouren '
|
||||||
|
'minimierten die '
|
||||||
|
'Attribution von '
|
||||||
|
'handelnde '
|
||||||
|
'Personenn und '
|
||||||
|
'stabile '
|
||||||
|
'Referenzen, '
|
||||||
|
'niemals '
|
||||||
|
'willkürliche '
|
||||||
|
'Beweisnutzlasten.',
|
||||||
|
'retain_audit_evidence': 'Hält '
|
||||||
|
'unveränderliche '
|
||||||
|
'Nachweise unter '
|
||||||
|
'konfigurierten '
|
||||||
|
'Aufbewahrungs- '
|
||||||
|
'und '
|
||||||
|
'Legal-Hold-Richtlinien.'}},
|
||||||
|
'audit.evidence-bundles': {'verification': ['Bestätigen Sie, dass der angeforderte Datenumfang '
|
||||||
|
'vor dem Export vollständig und begrenzt ist.',
|
||||||
|
'Überprüfen Sie kanonische Hashes offline und liefern '
|
||||||
|
'Sie bei Bedarf vertrauenswürdige Schlüssel oder '
|
||||||
|
'referenzierte Nachweise.',
|
||||||
|
'Behandeln Sie fehlende externe Nachweise, nicht '
|
||||||
|
'verifizierbare Referenzen und Hash-Mismatches als '
|
||||||
|
'unterschiedliche Ergebnisse.']}}
|
||||||
@@ -1,5 +1,8 @@
|
|||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
|
from govoplan_core.core.modules import with_documentation_structured_translations
|
||||||
|
from govoplan_audit.backend.german_structured_documentation import GERMAN_STRUCTURED_TRANSLATIONS
|
||||||
|
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
from govoplan_audit.backend.db import models as audit_models # noqa: F401 - populate Audit ORM metadata
|
from govoplan_audit.backend.db import models as audit_models # noqa: F401 - populate Audit ORM metadata
|
||||||
@@ -74,7 +77,7 @@ def _dsar_provider(_context: ModuleContext) -> AuditDsarProvider:
|
|||||||
manifest = ModuleManifest(
|
manifest = ModuleManifest(
|
||||||
id="audit",
|
id="audit",
|
||||||
name="Audit",
|
name="Audit",
|
||||||
version="0.1.19",
|
version="0.1.20",
|
||||||
permissions=AUDIT_PERMISSIONS,
|
permissions=AUDIT_PERMISSIONS,
|
||||||
role_templates=AUDIT_ROLE_TEMPLATES,
|
role_templates=AUDIT_ROLE_TEMPLATES,
|
||||||
required_capabilities=(
|
required_capabilities=(
|
||||||
@@ -150,7 +153,9 @@ manifest = ModuleManifest(
|
|||||||
id="audit.read-authorized-evidence",
|
id="audit.read-authorized-evidence",
|
||||||
title="Read authorized audit evidence",
|
title="Read authorized audit evidence",
|
||||||
summary="Audit history explains who performed a governed action, when it happened, and which resource and trace context were involved.",
|
summary="Audit history explains who performed a governed action, when it happened, and which resource and trace context were involved.",
|
||||||
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.",
|
body="Open the documentation book beside the audit heading to understand the displayed evidence "
|
||||||
|
"and its access boundary. "
|
||||||
|
"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",),
|
documentation_types=("user",),
|
||||||
audience=("auditor", "tenant_admin", "operator"),
|
audience=("auditor", "tenant_admin", "operator"),
|
||||||
translations={
|
translations={
|
||||||
@@ -158,6 +163,8 @@ manifest = ModuleManifest(
|
|||||||
"title": "Berechtigte Audit-Nachweise lesen",
|
"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.",
|
"summary": "Der Audit-Verlauf erklärt, wer eine gesteuerte Handlung wann ausgeführt hat und welche Ressourcen- und Trace-Zusammenhänge beteiligt waren.",
|
||||||
"body": (
|
"body": (
|
||||||
|
"Öffnen Sie das Dokumentationsbuch neben der Audit-Überschrift, um die angezeigten Nachweise "
|
||||||
|
"und ihre Zugriffsgrenzen zu verstehen. "
|
||||||
"Audit-Ansichten sind nach Berechtigung und Mandant begrenzt. Einträge sind Nachweise und keine bearbeitbaren Fachdaten. "
|
"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."
|
"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."
|
||||||
),
|
),
|
||||||
@@ -177,7 +184,9 @@ manifest = ModuleManifest(
|
|||||||
id="audit.recording-retention-and-outbox",
|
id="audit.recording-retention-and-outbox",
|
||||||
title="Operate audit recording and event delivery",
|
title="Operate audit recording and event delivery",
|
||||||
summary="Audit owns durable audit records, retention operations, and the transactional platform-event outbox.",
|
summary="Audit owns durable audit records, retention operations, and the transactional platform-event outbox.",
|
||||||
body="Modules record bounded audit facts through the Audit capability. Governed platform events are committed to the outbox with retry and delivery metadata so a failed consumer does not erase the originating transaction. Worker dispatch is partitioned by tenant entitlement; an unavailable consumer retains its durable delivery and records an operator-required outcome instead of acknowledging the event. Retention and destructive retirement must preserve the configured evidence and recovery guarantees.",
|
body="Open the documentation book beside the audit heading to understand the displayed evidence "
|
||||||
|
"and its access boundary. "
|
||||||
|
"Modules record bounded audit facts through the Audit capability. Governed platform events are committed to the outbox with retry and delivery metadata so a failed consumer does not erase the originating transaction. Worker dispatch is partitioned by tenant entitlement; an unavailable consumer retains its durable delivery and records an operator-required outcome instead of acknowledging the event. Retention and destructive retirement must preserve the configured evidence and recovery guarantees.",
|
||||||
documentation_types=("admin",),
|
documentation_types=("admin",),
|
||||||
audience=("auditor", "security_officer", "operator"),
|
audience=("auditor", "security_officer", "operator"),
|
||||||
related_modules=("policy", "ops"),
|
related_modules=("policy", "ops"),
|
||||||
@@ -186,6 +195,8 @@ manifest = ModuleManifest(
|
|||||||
"title": "Audit-Aufzeichnung, Aufbewahrung und Ereigniszustellung betreiben",
|
"title": "Audit-Aufzeichnung, Aufbewahrung und Ereigniszustellung betreiben",
|
||||||
"summary": "Audit verwaltet dauerhafte Audit-Datensätze, Aufbewahrungsvorgänge und die transaktionale Plattformereignis-Outbox.",
|
"summary": "Audit verwaltet dauerhafte Audit-Datensätze, Aufbewahrungsvorgänge und die transaktionale Plattformereignis-Outbox.",
|
||||||
"body": (
|
"body": (
|
||||||
|
"Öffnen Sie das Dokumentationsbuch neben der Audit-Überschrift, um die angezeigten Nachweise "
|
||||||
|
"und ihre Zugriffsgrenzen zu verstehen. "
|
||||||
"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. "
|
"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. "
|
"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."
|
"Aufbewahrung und destruktive Ausmusterung müssen die konfigurierten Nachweis- und Wiederherstellungsgarantien erhalten."
|
||||||
@@ -324,5 +335,10 @@ manifest = ModuleManifest(
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
manifest = with_documentation_structured_translations(
|
||||||
|
manifest, locale="de", translations=GERMAN_STRUCTURED_TRANSLATIONS
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def get_manifest() -> ModuleManifest:
|
def get_manifest() -> ModuleManifest:
|
||||||
return manifest
|
return manifest
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@govoplan/audit-webui",
|
"name": "@govoplan/audit-webui",
|
||||||
"version": "0.1.19",
|
"version": "0.1.20",
|
||||||
"private": true,
|
"private": true,
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"main": "src/index.ts",
|
"main": "src/index.ts",
|
||||||
|
|||||||
@@ -208,6 +208,11 @@ export default function AdminAuditPanel({ settings, auth, systemMode = false }:
|
|||||||
<>
|
<>
|
||||||
<AdminPageLayout
|
<AdminPageLayout
|
||||||
title={systemMode ? I18N.systemAudit : I18N.tenantAudit}
|
title={systemMode ? I18N.systemAudit : I18N.tenantAudit}
|
||||||
|
titleHelp={<DocumentationHelpLink
|
||||||
|
reference={{
|
||||||
|
topicId: "audit.read-authorized-evidence",
|
||||||
|
documentationType: "user"
|
||||||
|
}} />}
|
||||||
description={pageDescription}
|
description={pageDescription}
|
||||||
loading={loading}
|
loading={loading}
|
||||||
error={error}
|
error={error}
|
||||||
@@ -221,11 +226,6 @@ export default function AdminAuditPanel({ settings, auth, systemMode = false }:
|
|||||||
{I18N.exportEvidence}
|
{I18N.exportEvidence}
|
||||||
</Button>
|
</Button>
|
||||||
)}
|
)}
|
||||||
<DocumentationHelpLink
|
|
||||||
reference={{
|
|
||||||
topicId: "audit.read-authorized-evidence",
|
|
||||||
documentationType: "user"
|
|
||||||
}} />
|
|
||||||
<Button
|
<Button
|
||||||
onClick={() => setReloadToken((value) => value + 1)}
|
onClick={() => setReloadToken((value) => value + 1)}
|
||||||
disabled={loading}
|
disabled={loading}
|
||||||
|
|||||||
Reference in New Issue
Block a user