diff --git a/package.json b/package.json index 3be8fab..e568866 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@govoplan/idm-webui", - "version": "0.1.22", + "version": "0.1.23", "private": true, "type": "module", "main": "webui/src/index.ts", diff --git a/pyproject.toml b/pyproject.toml index a882091..38ab13b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "govoplan-idm" -version = "0.1.22" +version = "0.1.23" description = "GovOPlaN identity management bridge module." readme = "README.md" requires-python = ">=3.12" diff --git a/src/govoplan_idm/backend/german_structured_documentation.py b/src/govoplan_idm/backend/german_structured_documentation.py new file mode 100644 index 0000000..fd713ee --- /dev/null +++ b/src/govoplan_idm/backend/german_structured_documentation.py @@ -0,0 +1,190 @@ +"""German translations for public structured documentation metadata.""" + +from __future__ import annotations + +from typing import Any + + +GERMAN_STRUCTURED_TRANSLATIONS: dict[str, dict[str, Any]] = {'idm.reference.assignment-governance': {'consequence_classes': {'emergency_override': 'Umgeht den ' + 'normalen ' + 'geregelten ' + 'Antrags- ' + 'oder ' + 'Gewährungspfad ' + 'und ' + 'erfordert ' + 'beibehaltene ' + 'Gründe und ' + 'Nachweise.', + 'function_decision': 'Erweitert ' + 'oder ' + 'beendet ' + 'eine ' + 'geregelte ' + 'Änderung ' + 'und behält ' + 'handelnde ' + 'Person, ' + 'Kommentar, ' + 'Politik und ' + 'Workflow-Nachweise.', + 'governance_settings': 'Ändert, ' + 'ob ' + 'direkte ' + 'Zuordnungsmutationen ' + 'genehmigte ' + 'Änderungsnachweise ' + 'erfordern.', + 'timed_escalation': 'Zeichnet ' + 'eine ' + 'überfällige ' + 'Überprüfung ' + 'und genaue ' + 'Zielfunktion ' + 'auf, ohne ' + 'eine ' + 'Genehmigung ' + 'zu ersetzen ' + 'oder ' + 'abzuschließen.'}}, + 'idm.reference.fields-and-consequences': {'consequence_classes': {'acting_for': 'Ermöglicht es ' + 'einem gebundenen ' + 'Konto, anstelle ' + 'einer ' + 'Quellzuweisung ' + 'zu handeln, wenn ' + 'Organisationen ' + 'dies zulassen.', + 'assignment': 'Ändert die ' + 'effektive ' + 'institutionelle ' + 'Funktion, die ' + 'von optionalen ' + 'nachgelagerten ' + 'Fähigkeiten ' + 'verbraucht wird.', + 'deactivate_or_expire': 'Entfernt ' + 'die ' + 'Tatsache ' + 'aus ' + 'der ' + 'effektiven ' + 'Auflösung, ' + 'während ' + 'Provenienz ' + 'und ' + 'Lebenszyklus ' + 'Nachweise ' + 'beibehalten.', + 'delegation': 'Erstellt eine ' + 'begrenzte ' + 'abgeleitete ' + 'Zuweisung, die ' + 'an die ' + 'Quellzuweisung ' + 'gebunden bleibt.', + 'escalation': 'Leitet eine ' + 'überfällige ' + 'Überprüfung ' + 'sichtbar zu ' + 'einer genau ' + 'konfigurierten ' + 'Funktion, ohne ' + 'die Entscheidung ' + 'abzuschließen.', + 'retention': 'Ändert, wie lange ' + 'detaillierte ' + 'Zuordnungsänderungsnachweise ' + 'verfügbar ' + 'bleiben.'}}, + 'idm.reference.typed-relationships': {'consequences': ['Ein zukünftiger Start verzögert die ' + 'Mitgliedschaft bis zum ausgewählten ' + 'Zeitpunkt.', + 'Expiry entfernt die Beziehung von der ' + 'effektiven Auflösung, während Nachweise ' + 'aufbewahrt werden.', + 'Der Widerruf entfernt die Beziehung ' + 'sofort von der effektiven Auflösung und ' + 'kann nicht rückgängig gemacht werden.', + 'Das Ändern einer extern beschafften ' + 'Tatsache ohne übereinstimmende Provenienz ' + 'kann die Verantwortlichkeit für die ' + 'Abstimmung unterbrechen.'], + 'limitations': ['Mitgliedschaftsbeschlüsse sind ' + 'mieterspezifisch und lehnen ' + 'mieterübergreifende Gruppenreferenzen ab.', + 'Eine widerrufene Beziehung ist ' + 'unveränderlich und erfordert einen Ersatz ' + 'für eine spätere Wiederverwendung.', + 'Die Mitgliedschaft allein aktiviert ' + 'niemals eine Identität oder erteilt eine ' + 'Antragsberechtigung.'], + 'outcome': 'Der Mandant hat erklärbare, effektiv datierte ' + 'Geschäftsmitgliedschaftsfakten, die ' + 'nachgelagerte Verbraucher lösen können, ohne ' + 'IDM-Interna zu importieren oder Zugriffsrechte ' + 'abzuleiten.', + 'prerequisites': ['Die Identitäten existieren im ' + 'Mandanten-Identitätsverzeichnis.', + 'Die handelnde Person hat die Berechtigung ' + 'zum Lesen von Beziehungen und die ' + 'Berechtigung zum Schreiben von ' + 'Mutationen.', + 'Die verantwortliche Quelle, das ' + 'effektive Fenster, die Art der Beziehung ' + 'und der Geschäftszweck sind bekannt.'], + 'steps': ['Erstellen oder wählen Sie eine typisierte Gruppe ' + 'mit einem stabilen Schlüssel, Typ und Herkunft ' + 'aus.', + 'Erstellen Sie eine Beziehung zu durchsuchbaren ' + 'Betreff- und Zielreferenzen und dem ' + 'beabsichtigten Gültigkeitsfenster.', + 'Überprüfen Sie effektive Mitgliedschaften zum ' + 'jeweiligen Zeitpunkt und überprüfen Sie jede ' + 'eingeschlossene oder ausgeschlossene ' + 'Entscheidung.', + 'Widerrufen Sie eine Beziehung mit einem ' + 'vorgehaltenen Grund, wenn die Tatsache vor ihrem ' + 'geplanten Ende aufhören muss.'], + 'verification': 'Laden Sie beide Verzeichnisse neu, ' + 'bestätigen Sie die Datensatzrevision und ' + 'die Quellfelder und lösen Sie dann die ' + 'Mitgliedschaften der Zielgruppe zu Zeiten ' + 'vor, während und nach dem ' + 'Gültigkeitsfenster auf. Stellen Sie ' + 'sicher, dass Zugriffsberechtigungen ' + 'unverändert bleiben.'}, + 'idm.scim-provisioning': {'consequences': ['Ein unvollständiger oder fehlgeschlagener Snapshot ' + 'kann eine lokale Identität nicht deaktivieren.', + 'Ein geänderter unveränderlicher Wert oder eine ' + 'Kollision blockiert die automatische Verknüpfung.', + 'Ein vollständiger Snapshot kann nur dann eine ' + 'Deaktivierung vorschlagen, wenn die Mandantrichtlinie ' + 'ihn explizit auswählt.'], + 'limitations': ['Diese Version zeigt eine Vorschau, wendet jedoch keine ' + 'SCIM-Bereitstellungspläne an.', + 'Cursor-Paginierung wird nicht verwendet, bis ' + 'angekündigt und durch einen Provider-Zieltest ' + 'abgedeckt.', + 'Eine SCIM-Gruppenmitgliedschaft wird niemals ' + 'automatisch zur Zugriffsberechtigung.'], + 'prerequisites': ['Der Anbieter stellt RFC 7643 Benutzer- und ' + 'Gruppenressourcen über SCIM 2.0 zur Verfügung.', + 'Ein anbietereigenes unveränderliches ' + 'Übereinstimmungsattribut wurde ausgewählt und ' + 'kollisionsgetestet.', + 'Die Authentifizierung erfolgt in einem Scoped Access ' + 'Credential-Umschlag.'], + 'steps': ['Lesen Sie jede Benutzer- und Gruppenseite in einem ' + 'vollständigen Snapshot.', + 'Überprüfung von Schema, Paginierung, Kollision und Diagnose ' + 'von unveränderlichen Werten.', + 'Überprüfen Sie jede Erstellung, Verknüpfung, Aktualisierung, ' + 'Deaktivierung oder Quarantäne und die erwartete lokale ' + 'Überarbeitung.', + 'Entsorgen und neu erstellen Sie den Plan nach jeder ' + 'Anbieter, Mapping oder lokale Revision Änderung.'], + 'verification': 'Vergleichen Sie Seitensummen, Quellen- und ' + 'Planverdauungen, erwartete lokale Überarbeitungen, ' + 'Kollisionsdiagnosen und die Abwesenheitsrichtlinien, ' + 'bevor Sie eine spätere Ausführung genehmigen.'}} diff --git a/src/govoplan_idm/backend/manifest.py b/src/govoplan_idm/backend/manifest.py index 7862f9e..92d30ab 100644 --- a/src/govoplan_idm/backend/manifest.py +++ b/src/govoplan_idm/backend/manifest.py @@ -1,5 +1,8 @@ from __future__ import annotations +from govoplan_core.core.modules import with_documentation_structured_translations +from govoplan_idm.backend.german_structured_documentation import GERMAN_STRUCTURED_TRANSLATIONS + from datetime import UTC, datetime from pathlib import Path @@ -66,7 +69,7 @@ from govoplan_idm.backend.search_source import create_idm_search_source from govoplan_idm.backend.scim import SCIM_EXTERNAL_PROVIDER_ID -MODULE_VERSION = "0.1.22" +MODULE_VERSION = "0.1.23" IDM_READ_SCOPES = ( "idm:organization_assignment:read", @@ -1063,5 +1066,10 @@ manifest = ModuleManifest( ) +manifest = with_documentation_structured_translations( + manifest, locale="de", translations=GERMAN_STRUCTURED_TRANSLATIONS +) + + def get_manifest() -> ModuleManifest: return manifest diff --git a/webui/package.json b/webui/package.json index 4f9f5de..9a1f9a4 100644 --- a/webui/package.json +++ b/webui/package.json @@ -1,6 +1,6 @@ { "name": "@govoplan/idm-webui", - "version": "0.1.22", + "version": "0.1.23", "private": true, "type": "module", "main": "src/index.ts",