From 56d8c223d8e4347e0efa6130c8930adf68920675 Mon Sep 17 00:00:00 2001 From: Denis Lugowski Date: Thu, 22 Jan 2026 12:21:54 +0100 Subject: [PATCH] feat: Add Eingabeseite 5 (Schnittstellen) --- .../seed/initial_application_form.yaml | 100 ++++++++-- .../initial_application_form_template.yaml | 183 ++++++++++++++++-- 2 files changed, 248 insertions(+), 35 deletions(-) diff --git a/legalconsenthub-backend/src/main/resources/seed/initial_application_form.yaml b/legalconsenthub-backend/src/main/resources/seed/initial_application_form.yaml index cea88fe..478f2ef 100644 --- a/legalconsenthub-backend/src/main/resources/seed/initial_application_form.yaml +++ b/legalconsenthub-backend/src/main/resources/seed/initial_application_form.yaml @@ -43,6 +43,14 @@ formElementSections: sectionSpawnConditionType: SHOW sectionSpawnExpectedValue: Einführung sectionSpawnOperator: EQUALS + - templateReference: loeschkonzept_template + sectionSpawnConditionType: SHOW + sectionSpawnExpectedValue: Einführung + sectionSpawnOperator: EQUALS + - templateReference: schnittstellen_template + sectionSpawnConditionType: SHOW + sectionSpawnExpectedValue: Einführung + sectionSpawnOperator: EQUALS # Einführung: Allgemeine Informationen - title: Allgemeine Informationen @@ -910,20 +918,16 @@ formElementSections: processingPurpose: SYSTEM_OPERATION employeeDataCategory: REVIEW_REQUIRED -# ============================================================================ -# Löschkonzept Section (Spawned) -# ============================================================================ +# Eingabeseite 4: Löschkonzept (Spawned) - title: Löschkonzept shortTitle: Löschkonzept description: Angaben zum Löschkonzept für Verarbeitungsvorgänge, Datenkategorien und Arbeitnehmerdaten spawnedFromElementReference: art_der_massnahme formElementSubSections: - # Subsection 1: Grundlegende Optionen + # Grundlegende Angaben zum Löschkonzept - title: Grundlegende Angaben zum Löschkonzept formElements: - - # Checkbox 1: loeschkonzept_hinterlegen = checked - reference: loeschkonzept_hinterlegen title: Löschkonzept hinterlegen description: '' @@ -933,8 +937,6 @@ formElementSections: label: Löschkonzept für die Verarbeitungsvorgänge, Datenkategorien und Arbeitnehmerdaten hinterlegen processingPurpose: DATA_ANALYSIS employeeDataCategory: SENSITIVE - - # Checkbox 2: globales_loeschkonzept = not checked - reference: globales_loeschkonzept title: Globales Löschkonzept description: '' @@ -944,8 +946,6 @@ formElementSections: label: Es kommt ein globales Löschkonzept hinsichtlich aller Verarbeitungsvorgänge, Datenkategorien und Arbeitnehmerdaten zum Einsatz processingPurpose: DATA_ANALYSIS employeeDataCategory: SENSITIVE - - # Text field: globales_loeschkonzept_referenz (hidden because checkbox not checked) - reference: globales_loeschkonzept_referenz title: Referenz zum globalen Löschkonzept description: Angabe der Dokumentreferenz oder des Verweises auf das globale Löschkonzept @@ -955,8 +955,6 @@ formElementSections: label: Dokumentreferenz processingPurpose: DATA_ANALYSIS employeeDataCategory: SENSITIVE - - # Checkbox 3: teilweises_globales_loeschkonzept = not checked - reference: teilweises_globales_loeschkonzept title: Teilweises globales Löschkonzept description: '' @@ -966,8 +964,6 @@ formElementSections: label: Ein globales Löschkonzept kommt teilweise zum Einsatz processingPurpose: DATA_ANALYSIS employeeDataCategory: SENSITIVE - - # Text field: teilweises_globales_loeschkonzept_referenz (hidden) - reference: teilweises_globales_loeschkonzept_referenz title: Referenz zum teilweise genutzten Löschkonzept description: Angabe der Dokumentreferenz oder des Verweises auf das teilweise genutzte Löschkonzept @@ -977,8 +973,6 @@ formElementSections: label: Dokumentreferenz processingPurpose: DATA_ANALYSIS employeeDataCategory: SENSITIVE - - # Rich text: teilweises_loeschkonzept_abweichungen (hidden) - reference: teilweises_loeschkonzept_abweichungen title: Abweichungen vom globalen Löschkonzept description: Beschreiben Sie die Abweichungen vom globalen Löschkonzept @@ -990,7 +984,7 @@ formElementSections: employeeDataCategory: SENSITIVE # ============================================================================ - # Table WITH LuV (luv_beabsichtigt = Ja) - 10 columns + # CASE 2: Leistungs-/Verhaltenskontrolle beabsichtigt (LuV = Ja) # ============================================================================ - title: Löschkonzept (Umfassende Darstellung) @@ -1085,3 +1079,75 @@ formElementSections: label: Nachweisform processingPurpose: DATA_ANALYSIS employeeDataCategory: REVIEW_REQUIRED + +# Eingabeseite 5: Schnittstellen (Spawned) +- title: Schnittstellen + shortTitle: Schnittstellen + description: Angaben zu Schnittstellen zwischen IT-Systemen + spawnedFromElementReference: art_der_massnahme + formElementSubSections: + + # ============================================================================ + # CASE 2: Leistungs-/Verhaltenskontrolle beabsichtigt (LuV = Ja) + # ============================================================================ + + - title: Schnittstellen (Umfassende Darstellung) + formElements: + - reference: schnittstellen_umfassend_tabelle + title: Schnittstellen + description: Übersicht der Schnittstellen zwischen IT-Systemen (Datenkategorien und personenbezogene Arbeitnehmerdaten) + type: TABLE + options: + # Column 0: Schnittstellen-ID + - value: '["IF001", "IF002", "IF003", "IF004", "IF005"]' + label: Schnittstellen-ID + processingPurpose: SYSTEM_OPERATION + employeeDataCategory: NON_CRITICAL + # Column 1: Verarbeitungsvorgang-ID (cross-referenced to umfassende_datenverarbeitung_tabelle) + - value: '["V001", "V002", "V003", "V004", "V005"]' + label: Verarbeitungsvorgang-ID + processingPurpose: SYSTEM_OPERATION + employeeDataCategory: NON_CRITICAL + columnConfig: + sourceTableReference: umfassende_datenverarbeitung_tabelle + sourceColumnIndex: 0 + # Column 2: Datenumfang (Datenkategorien + personenbezogene Arbeitnehmerdaten) + - value: '["Datenkategorien: Stammdaten; Personenbezogene Arbeitnehmerdaten: Name, Adresse, Personalnummer, Bankverbindung", "Datenkategorien: Arbeitszeitdaten; Personenbezogene Arbeitnehmerdaten: An-/Abmeldezeiten, Pausenzeiten, Überstunden", "Datenkategorien: Gehaltsdaten; Personenbezogene Arbeitnehmerdaten: Bruttogehalt, Abzüge, Zulagen, Sonderzahlungen", "Datenkategorien: Leistungsdaten; Personenbezogene Arbeitnehmerdaten: Zielerreichung, Bewertungen, Entwicklungsgespräche", "Datenkategorien: Produktionsdaten; Personenbezogene Arbeitnehmerdaten: Stückzahlen, Fehlerquoten, Maschinenzeiten"]' + label: Datenumfang (Datenkategorien und personenbezogene Arbeitnehmerdaten) + processingPurpose: DATA_ANALYSIS + employeeDataCategory: SENSITIVE + # Column 3: Quellsystem + - value: '["SAP HCM Master Data", "SAP CATS (Zeiterfassung)", "SAP Payroll", "SuccessFactors Performance & Goals", "SAP MES Production"]' + label: Quellsystem + processingPurpose: SYSTEM_OPERATION + employeeDataCategory: NON_CRITICAL + # Column 4: Zielsystem + - value: '["SAP Analytics Cloud", "SAP HR Controlling", "External Tax System (ELSTER)", "SAP HR Management Reporting", "SAP Quality Management"]' + label: Zielsystem + processingPurpose: SYSTEM_OPERATION + employeeDataCategory: NON_CRITICAL + # Column 5: Richtung + - value: '["ausgehend", "bidirektional", "ausgehend", "ausgehend", "ausgehend"]' + label: Richtung + processingPurpose: SYSTEM_OPERATION + employeeDataCategory: NON_CRITICAL + # Column 6: Zweck der Schnittstelle + - value: '["Stammdaten-Synchronisation für Reporting und Analytics", "Zeitdaten-Austausch für Abrechnungsprozesse und Controlling", "Übermittlung Lohnsteuerdaten an Finanzbehörden", "Transfer von Leistungsbeurteilungen für HR-Reporting", "Qualitätskennzahlen zur Produktionsüberwachung"]' + label: Zweck der Schnittstelle + processingPurpose: SYSTEM_OPERATION + employeeDataCategory: NON_CRITICAL + # Column 7: Empfänger Zielsystem + - value: '["Analytics Team, Management", "HR Controlling, Finance Department", "Finanzbehörden (externe Stelle)", "HR Management, Führungskräfte", "Quality Management Team, Produktionsleitung"]' + label: Empfänger Zielsystem + processingPurpose: DATA_ANALYSIS + employeeDataCategory: REVIEW_REQUIRED + # Column 8: Auswertung im Zielsystem + - value: '["Headcount Reports, Organisationsanalysen", "Arbeitszeitkostenauswertung, Überstundenberichte", "Elektronische Steuererklärung, Behördenmeldungen", "Performance Dashboard, Talent Reviews", "Produktivitätsanalysen, Qualitätsberichte"]' + label: Auswertung im Zielsystem + processingPurpose: DATA_ANALYSIS + employeeDataCategory: REVIEW_REQUIRED + # Column 9: Bemerkungen + - value: '["Täglicher Batch-Transfer um 02:00 Uhr", "Real-time Interface mit Delta-Update", "Monatliche Übermittlung, verschlüsselt (TLS 1.3)", "Quartalsweise Synchronisation, manuelle Freigabe erforderlich", "Schichtweise Übertragung, Aggregation auf Team-Ebene"]' + label: Bemerkungen + processingPurpose: SYSTEM_OPERATION + employeeDataCategory: NON_CRITICAL diff --git a/legalconsenthub-backend/src/main/resources/seed/initial_application_form_template.yaml b/legalconsenthub-backend/src/main/resources/seed/initial_application_form_template.yaml index 831864a..9f169f0 100644 --- a/legalconsenthub-backend/src/main/resources/seed/initial_application_form_template.yaml +++ b/legalconsenthub-backend/src/main/resources/seed/initial_application_form_template.yaml @@ -47,6 +47,10 @@ formElementSections: sectionSpawnConditionType: SHOW sectionSpawnExpectedValue: Einführung sectionSpawnOperator: EQUALS + - templateReference: schnittstellen_template + sectionSpawnConditionType: SHOW + sectionSpawnExpectedValue: Einführung + sectionSpawnOperator: EQUALS # Einführung: Allgemeine Informationen - title: Allgemeine Informationen @@ -2216,9 +2220,7 @@ formElementSections: processingPurpose: SYSTEM_OPERATION employeeDataCategory: REVIEW_REQUIRED -# ============================================================================ -# Löschkonzept - Deletion Concept Section -# ============================================================================ +# Eingabeseite 4: Löschkonzept (comprehensive template) - title: Löschkonzept shortTitle: Löschkonzept description: Angaben zum Löschkonzept für Verarbeitungsvorgänge, Datenkategorien und Arbeitnehmerdaten @@ -2227,11 +2229,9 @@ formElementSections: titleTemplate: Löschkonzept formElementSubSections: - # Subsection 1: Grundlegende Optionen (Checkboxes) + # Grundlegende Angaben zum Löschkonzept - title: Grundlegende Angaben zum Löschkonzept formElements: - - # Checkbox 1: Standard deletion concept - reference: loeschkonzept_hinterlegen title: Löschkonzept hinterlegen description: '' @@ -2246,8 +2246,6 @@ formElementSections: label: Löschkonzept für die Verarbeitungsvorgänge, Datenkategorien und Arbeitnehmerdaten hinterlegen processingPurpose: DATA_ANALYSIS employeeDataCategory: SENSITIVE - - # Checkbox 2: Global deletion concept - reference: globales_loeschkonzept title: Globales Löschkonzept description: '' @@ -2262,8 +2260,6 @@ formElementSections: label: Es kommt ein globales Löschkonzept hinsichtlich aller Verarbeitungsvorgänge, Datenkategorien und Arbeitnehmerdaten zum Einsatz processingPurpose: DATA_ANALYSIS employeeDataCategory: SENSITIVE - - # Text field for global concept reference - reference: globales_loeschkonzept_referenz title: Referenz zum globalen Löschkonzept description: Angabe der Dokumentreferenz oder des Verweises auf das globale Löschkonzept @@ -2282,8 +2278,6 @@ formElementSections: label: Dokumentreferenz processingPurpose: DATA_ANALYSIS employeeDataCategory: SENSITIVE - - # Checkbox 3: Partial global deletion concept - reference: teilweises_globales_loeschkonzept title: Teilweises globales Löschkonzept description: '' @@ -2298,8 +2292,6 @@ formElementSections: label: Ein globales Löschkonzept kommt teilweise zum Einsatz processingPurpose: DATA_ANALYSIS employeeDataCategory: SENSITIVE - - # Text field for partial global concept reference - reference: teilweises_globales_loeschkonzept_referenz title: Referenz zum teilweise genutzten Löschkonzept description: Angabe der Dokumentreferenz oder des Verweises auf das teilweise genutzte Löschkonzept @@ -2318,8 +2310,6 @@ formElementSections: label: Dokumentreferenz processingPurpose: DATA_ANALYSIS employeeDataCategory: SENSITIVE - - # Rich text for deviations description - reference: teilweises_loeschkonzept_abweichungen title: Abweichungen vom globalen Löschkonzept description: Beschreiben Sie die Abweichungen vom globalen Löschkonzept @@ -2340,7 +2330,7 @@ formElementSections: employeeDataCategory: SENSITIVE # ============================================================================ - # Table WITHOUT LuV (luv_beabsichtigt = Nein) - 9 columns + # CASE 1: Leistungs-/Verhaltenskontrolle NICHT beabsichtigt (LuV = Nein) # ============================================================================ - title: Löschkonzept (Einfache Darstellung) @@ -2426,7 +2416,7 @@ formElementSections: employeeDataCategory: REVIEW_REQUIRED # ============================================================================ - # Table WITH LuV (luv_beabsichtigt = Ja) - 10 columns + # CASE 2: Leistungs-/Verhaltenskontrolle beabsichtigt (LuV = Ja) # ============================================================================ - title: Löschkonzept (Umfassende Darstellung) @@ -2522,6 +2512,163 @@ formElementSections: processingPurpose: DATA_ANALYSIS employeeDataCategory: REVIEW_REQUIRED +# Eingabeseite 5: Schnittstellen (comprehensive template) +- title: Schnittstellen + shortTitle: Schnittstellen + description: Angaben zu Schnittstellen zwischen IT-Systemen + isTemplate: true + templateReference: schnittstellen_template + titleTemplate: Schnittstellen + formElementSubSections: + + # ============================================================================ + # CASE 1: Leistungs-/Verhaltenskontrolle NICHT beabsichtigt (LuV = Nein) + # ============================================================================ + + - title: Schnittstellen (Einfache Darstellung) + formElements: + - reference: schnittstellen_einfach_tabelle + title: Schnittstellen + description: Übersicht der Schnittstellen zwischen IT-Systemen (nur Datenkategorien) + type: TABLE + visibilityConditions: + - formElementConditionType: SHOW + sourceFormElementReference: personenbezogene_daten_verarbeitet + formElementExpectedValue: Ja + formElementOperator: EQUALS + - formElementConditionType: SHOW + sourceFormElementReference: luv_beabsichtigt + formElementExpectedValue: Nein + formElementOperator: EQUALS + options: + # Column 0: Schnittstellen-ID + - value: '[]' + label: Schnittstellen-ID + processingPurpose: SYSTEM_OPERATION + employeeDataCategory: NON_CRITICAL + # Column 1: Verarbeitungsvorgang-ID (cross-reference to einfache_datenverarbeitung_tabelle) + - value: '[]' + label: Verarbeitungsvorgang-ID + processingPurpose: SYSTEM_OPERATION + employeeDataCategory: NON_CRITICAL + columnConfig: + sourceTableReference: einfache_datenverarbeitung_tabelle + sourceColumnIndex: 0 + # Column 2: Datenumfang (only Datenkategorien) + - value: '[]' + label: Datenumfang (Datenkategorien) + processingPurpose: DATA_ANALYSIS + employeeDataCategory: REVIEW_REQUIRED + # Column 3: Quellsystem + - value: '[]' + label: Quellsystem + processingPurpose: SYSTEM_OPERATION + employeeDataCategory: NON_CRITICAL + # Column 4: Zielsystem + - value: '[]' + label: Zielsystem + processingPurpose: SYSTEM_OPERATION + employeeDataCategory: NON_CRITICAL + # Column 5: Richtung + - value: '[]' + label: Richtung + processingPurpose: SYSTEM_OPERATION + employeeDataCategory: NON_CRITICAL + # Column 6: Zweck der Schnittstelle + - value: '[]' + label: Zweck der Schnittstelle + processingPurpose: SYSTEM_OPERATION + employeeDataCategory: NON_CRITICAL + # Column 7: Empfänger Zielsystem + - value: '[]' + label: Empfänger Zielsystem + processingPurpose: DATA_ANALYSIS + employeeDataCategory: REVIEW_REQUIRED + # Column 8: Auswertung im Zielsystem + - value: '[]' + label: Auswertung im Zielsystem + processingPurpose: DATA_ANALYSIS + employeeDataCategory: REVIEW_REQUIRED + # Column 9: Bemerkungen + - value: '[]' + label: Bemerkungen + processingPurpose: SYSTEM_OPERATION + employeeDataCategory: NON_CRITICAL + + # ============================================================================ + # CASE 2: Leistungs-/Verhaltenskontrolle beabsichtigt (LuV = Ja) + # ============================================================================ + + - title: Schnittstellen (Umfassende Darstellung) + formElements: + - reference: schnittstellen_umfassend_tabelle + title: Schnittstellen + description: Übersicht der Schnittstellen zwischen IT-Systemen (Datenkategorien und personenbezogene Arbeitnehmerdaten) + type: TABLE + visibilityConditions: + - formElementConditionType: SHOW + sourceFormElementReference: personenbezogene_daten_verarbeitet + formElementExpectedValue: Ja + formElementOperator: EQUALS + - formElementConditionType: SHOW + sourceFormElementReference: luv_beabsichtigt + formElementExpectedValue: Ja + formElementOperator: EQUALS + options: + # Column 0: Schnittstellen-ID + - value: '[]' + label: Schnittstellen-ID + processingPurpose: SYSTEM_OPERATION + employeeDataCategory: NON_CRITICAL + # Column 1: Verarbeitungsvorgang-ID (cross-reference to umfassende_datenverarbeitung_tabelle) + - value: '[]' + label: Verarbeitungsvorgang-ID + processingPurpose: SYSTEM_OPERATION + employeeDataCategory: NON_CRITICAL + columnConfig: + sourceTableReference: umfassende_datenverarbeitung_tabelle + sourceColumnIndex: 0 + # Column 2: Datenumfang (Datenkategorien + personenbezogene Arbeitnehmerdaten) + - value: '[]' + label: Datenumfang (Datenkategorien und personenbezogene Arbeitnehmerdaten) + processingPurpose: DATA_ANALYSIS + employeeDataCategory: SENSITIVE + # Column 3: Quellsystem + - value: '[]' + label: Quellsystem + processingPurpose: SYSTEM_OPERATION + employeeDataCategory: NON_CRITICAL + # Column 4: Zielsystem + - value: '[]' + label: Zielsystem + processingPurpose: SYSTEM_OPERATION + employeeDataCategory: NON_CRITICAL + # Column 5: Richtung + - value: '[]' + label: Richtung + processingPurpose: SYSTEM_OPERATION + employeeDataCategory: NON_CRITICAL + # Column 6: Zweck der Schnittstelle + - value: '[]' + label: Zweck der Schnittstelle + processingPurpose: SYSTEM_OPERATION + employeeDataCategory: NON_CRITICAL + # Column 7: Empfänger Zielsystem + - value: '[]' + label: Empfänger Zielsystem + processingPurpose: DATA_ANALYSIS + employeeDataCategory: REVIEW_REQUIRED + # Column 8: Auswertung im Zielsystem + - value: '[]' + label: Auswertung im Zielsystem + processingPurpose: DATA_ANALYSIS + employeeDataCategory: REVIEW_REQUIRED + # Column 9: Bemerkungen + - value: '[]' + label: Bemerkungen + processingPurpose: SYSTEM_OPERATION + employeeDataCategory: NON_CRITICAL + # AI GENERATED TEMPLATES BELOW THIS LINE - WILL BE REPLACED LATER # Änderung: Schnittstellen - title: Änderung Schnittstellen