diff --git a/admin-compliance/app/sdk/document-generator/_constants.ts b/admin-compliance/app/sdk/document-generator/_constants.ts index e009798..301350c 100644 --- a/admin-compliance/app/sdk/document-generator/_constants.ts +++ b/admin-compliance/app/sdk/document-generator/_constants.ts @@ -18,6 +18,10 @@ export const CATEGORIES: { key: string; label: string; types: string[] | null }[ { key: 'cloud', label: 'Cloud', types: ['cloud_service_agreement'] }, { key: 'misc', label: 'Weitere', types: ['community_guidelines', 'copyright_policy', 'data_usage_clause'] }, { key: 'dsfa', label: 'DSFA', types: ['dsfa'] }, + { key: 'dsr', label: 'DSR-Prozesse', types: [ + 'dsr_process_art15', 'dsr_process_art16', 'dsr_process_art17', + 'dsr_process_art18', 'dsr_process_art19', 'dsr_process_art20', 'dsr_process_art21', + ]}, ] // ============================================================================= diff --git a/admin-compliance/lib/sdk/dsr/types-core.ts b/admin-compliance/lib/sdk/dsr/types-core.ts index 6c20701..ac99417 100644 --- a/admin-compliance/lib/sdk/dsr/types-core.ts +++ b/admin-compliance/lib/sdk/dsr/types-core.ts @@ -52,6 +52,8 @@ export interface DSRTypeInfo { color: string bgColor: string processDocument?: string + /** Document type in the legal_templates table for the Document Generator */ + templateType?: string } export const DSR_TYPE_INFO: Record = { @@ -60,41 +62,47 @@ export const DSR_TYPE_INFO: Record = { description: 'Recht auf Auskunft ueber gespeicherte personenbezogene Daten', defaultDeadlineDays: 30, maxExtensionMonths: 2, color: 'text-blue-700', bgColor: 'bg-blue-100', - processDocument: 'Prozessbeschreibung Art. 15 DSGVO_v02.pdf' + processDocument: 'Prozessbeschreibung Art. 15 DSGVO_v02.pdf', + templateType: 'dsr_process_art15', }, rectification: { type: 'rectification', article: 'Art. 16', label: 'Berichtigungsrecht', labelShort: 'Berichtigung', description: 'Recht auf Berichtigung unrichtiger personenbezogener Daten', defaultDeadlineDays: 14, maxExtensionMonths: 2, color: 'text-yellow-700', bgColor: 'bg-yellow-100', - processDocument: 'Prozessbeschriebung Art. 16 DSGVO_v02.pdf' + processDocument: 'Prozessbeschreibung Art. 16 DSGVO_v02.pdf', + templateType: 'dsr_process_art16', }, erasure: { type: 'erasure', article: 'Art. 17', label: 'Loeschungsrecht', labelShort: 'Loeschung', description: 'Recht auf Loeschung personenbezogener Daten ("Recht auf Vergessenwerden")', defaultDeadlineDays: 14, maxExtensionMonths: 2, color: 'text-red-700', bgColor: 'bg-red-100', - processDocument: 'Prozessbeschreibung Art. 17 DSGVO_v03.pdf' + processDocument: 'Prozessbeschreibung Art. 17 DSGVO_v03.pdf', + templateType: 'dsr_process_art17', }, restriction: { type: 'restriction', article: 'Art. 18', label: 'Einschraenkungsrecht', labelShort: 'Einschraenkung', description: 'Recht auf Einschraenkung der Verarbeitung', defaultDeadlineDays: 14, maxExtensionMonths: 2, color: 'text-orange-700', bgColor: 'bg-orange-100', - processDocument: 'Prozessbeschreibung Art. 18 DSGVO_v01.pdf' + processDocument: 'Prozessbeschreibung Art. 18 DSGVO_v01.pdf', + templateType: 'dsr_process_art18', }, portability: { type: 'portability', article: 'Art. 20', label: 'Datenuebertragbarkeit', labelShort: 'Uebertragung', description: 'Recht auf Datenuebertragbarkeit in maschinenlesbarem Format', defaultDeadlineDays: 30, maxExtensionMonths: 2, color: 'text-purple-700', bgColor: 'bg-purple-100', - processDocument: 'Prozessbeschreibung Art. 20 DSGVO_v02.pdf' + processDocument: 'Prozessbeschreibung Art. 20 DSGVO_v02.pdf', + templateType: 'dsr_process_art20', }, objection: { type: 'objection', article: 'Art. 21', label: 'Widerspruchsrecht', labelShort: 'Widerspruch', description: 'Recht auf Widerspruch gegen die Verarbeitung', defaultDeadlineDays: 30, maxExtensionMonths: 0, - color: 'text-gray-700', bgColor: 'bg-gray-100' + color: 'text-gray-700', bgColor: 'bg-gray-100', + templateType: 'dsr_process_art21', } } diff --git a/backend-compliance/compliance/api/legal_template_routes.py b/backend-compliance/compliance/api/legal_template_routes.py index d16b8ef..01e9f1f 100644 --- a/backend-compliance/compliance/api/legal_template_routes.py +++ b/backend-compliance/compliance/api/legal_template_routes.py @@ -101,6 +101,14 @@ VALID_DOCUMENT_TYPES = { "tom_documentation", "loeschkonzept", "pflichtenregister", + # DSR Process Documents (Migration 085) + "dsr_process_art15", + "dsr_process_art16", + "dsr_process_art17", + "dsr_process_art18", + "dsr_process_art19", + "dsr_process_art20", + "dsr_process_art21", } VALID_STATUSES = {"published", "draft", "archived"} diff --git a/backend-compliance/migrations/085_dsr_process_templates.sql b/backend-compliance/migrations/085_dsr_process_templates.sql new file mode 100644 index 0000000..af11839 --- /dev/null +++ b/backend-compliance/migrations/085_dsr_process_templates.sql @@ -0,0 +1,466 @@ +-- Migration 085: DSR Process Document Templates (Art. 15-21 DSGVO) +-- Prozessbeschreibungen mit Swim-Lane-Diagrammen fuer den Document Generator + +INSERT INTO compliance_legal_templates (id, tenant_id, document_type, title, language, status, content, placeholders, created_at, updated_at) +VALUES + +-- ============================================================================ +-- Art. 15 DSGVO — Auskunftsrecht +-- ============================================================================ +(gen_random_uuid(), '9282a473-5c95-4b3a-bf78-0ecc0ec71d3e', 'dsr_process_art15', +'Prozessbeschreibung: Auskunftsrecht (Art. 15 DSGVO)', 'de', 'published', +'

Prozessbeschreibung: Auskunftsrecht nach Art. 15 DSGVO

+

Verantwortliche Stelle: {{FIRMENNAME}}
+Version: {{VERSION}}
+Stand: {{DATUM}}
+Genehmigt durch: {{DSB_NAME}}

+ +

1. Zweck und Geltungsbereich

+

Diese Prozessbeschreibung regelt den Ablauf bei Auskunftsersuchen betroffener Personen nach Art. 15 DSGVO. Jede natuerliche Person hat das Recht, eine Bestaetigung darueber zu verlangen, ob personenbezogene Daten verarbeitet werden, und ggf. Auskunft ueber diese Daten zu erhalten.

+ +

2. Rechtsgrundlage

+ + +

3. Frist

+

30 Tage nach Eingang der Anfrage. Verlaengerung um weitere 2 Monate bei komplexen Anfragen moeglich (Art. 12 Abs. 3 DSGVO), mit Begruendung innerhalb der ersten 30 Tage.

+ +

4. Prozessablauf (Swim Lane)

+
+graph TD
+    subgraph Betroffener
+        A1[Auskunftsersuchen einreichen]
+        A7[Auskunft erhalten und pruefen]
+    end
+    subgraph Empfang/Sachbearbeitung
+        B1[Anfrage erfassen und dokumentieren]
+        B2[Identitaet pruefen]
+        B3{Identitaet bestaetigt?}
+    end
+    subgraph Fachabteilung
+        C1[Alle Verarbeitungstaetigkeiten identifizieren]
+        C2[Personenbezogene Daten zusammenstellen]
+        C3[Daten auf Drittrechte pruefen]
+        C4[Auskunft erstellen]
+    end
+    subgraph Datenschutzbeauftragter
+        D1[Auskunft auf Vollstaendigkeit pruefen]
+        D2[Freigabe erteilen]
+    end
+
+    A1 --> B1 --> B2 --> B3
+    B3 -- Nein --> B2
+    B3 -- Ja --> C1 --> C2 --> C3 --> C4 --> D1 --> D2 --> A7
+
+ +

5. Detaillierte Schritte

+ + + + + + + + +
SchrittVerantwortlichBeschreibungFrist
1. EingangEmpfangAnfrage dokumentieren, Eingangsbestaetigung senden1 Tag
2. ID-PruefungSachbearbeitungIdentitaet des Antragstellers verifizieren3 Tage
3. DatenerhebungFachabteilungAlle verarbeiteten Daten zusammenstellen14 Tage
4. Pruefung DrittrechteFachabteilungRechte Dritter pruefen und ggf. schwaerzen5 Tage
5. QS + FreigabeDSBVollstaendigkeit und Richtigkeit pruefen3 Tage
6. VersandSachbearbeitungAuskunft an Betroffenen uebermitteln1 Tag
+ +

6. Zu liefernde Informationen (Art. 15 Abs. 1)

+ + +

7. Dokumentation

+

Alle Schritte werden im DSR-Modul von {{FIRMENNAME}} protokolliert inkl. Zeitstempel, Bearbeiter und Ergebnis.

', +'["FIRMENNAME", "VERSION", "DATUM", "DSB_NAME"]'::jsonb, +NOW(), NOW()), + +-- ============================================================================ +-- Art. 16 DSGVO — Recht auf Berichtigung +-- ============================================================================ +(gen_random_uuid(), '9282a473-5c95-4b3a-bf78-0ecc0ec71d3e', 'dsr_process_art16', +'Prozessbeschreibung: Recht auf Berichtigung (Art. 16 DSGVO)', 'de', 'published', +'

Prozessbeschreibung: Recht auf Berichtigung nach Art. 16 DSGVO

+

Verantwortliche Stelle: {{FIRMENNAME}}
+Version: {{VERSION}}
+Stand: {{DATUM}}
+Genehmigt durch: {{DSB_NAME}}

+ +

1. Zweck

+

Regelung des Ablaufs bei Antraegen auf Berichtigung unrichtiger personenbezogener Daten nach Art. 16 DSGVO.

+ +

2. Rechtsgrundlage

+ + +

3. Frist

+

Unverzueglich, spaetestens innerhalb von 14 Tagen.

+ +

4. Prozessablauf

+
+graph TD
+    subgraph Betroffener
+        A1[Berichtigungsantrag stellen]
+        A5[Bestaetigung erhalten]
+    end
+    subgraph Sachbearbeitung
+        B1[Antrag erfassen]
+        B2[Identitaet pruefen]
+        B3[Unrichtigkeit pruefen]
+        B4{Berechtigt?}
+    end
+    subgraph Fachabteilung
+        C1[Daten in allen Systemen berichtigen]
+        C2[Empfaenger benachrichtigen Art. 19]
+    end
+    subgraph DSB
+        D1[Berichtigung dokumentieren]
+    end
+
+    A1 --> B1 --> B2 --> B3 --> B4
+    B4 -- Nein --> A5
+    B4 -- Ja --> C1 --> C2 --> D1 --> A5
+
+ +

5. Schritte

+ + + + + + + + +
SchrittVerantwortlichBeschreibungFrist
1. EingangEmpfangAntrag dokumentieren1 Tag
2. ID-PruefungSachbearbeitungIdentitaet verifizieren2 Tage
3. SachpruefungSachbearbeitungUnrichtigkeit der Daten bestaetigen3 Tage
4. BerichtigungFachabteilungDaten in allen Systemen korrigieren3 Tage
5. Mitteilung Art. 19FachabteilungAlle Empfaenger ueber Berichtigung informieren3 Tage
6. DokumentationDSBBerichtigung protokollieren1 Tag
', +'["FIRMENNAME", "VERSION", "DATUM", "DSB_NAME"]'::jsonb, +NOW(), NOW()), + +-- ============================================================================ +-- Art. 17 DSGVO — Recht auf Loeschung +-- ============================================================================ +(gen_random_uuid(), '9282a473-5c95-4b3a-bf78-0ecc0ec71d3e', 'dsr_process_art17', +'Prozessbeschreibung: Recht auf Loeschung (Art. 17 DSGVO)', 'de', 'published', +'

Prozessbeschreibung: Recht auf Loeschung nach Art. 17 DSGVO

+

Verantwortliche Stelle: {{FIRMENNAME}}
+Version: {{VERSION}}
+Stand: {{DATUM}}
+Genehmigt durch: {{DSB_NAME}}

+ +

1. Zweck

+

Regelung des Ablaufs bei Loeschungsersuchen (Recht auf Vergessenwerden) nach Art. 17 DSGVO.

+ +

2. Rechtsgrundlage

+ + +

3. Frist

+

Unverzueglich, spaetestens innerhalb von 14 Tagen.

+ +

4. Prozessablauf

+
+graph TD
+    subgraph Betroffener
+        A1[Loeschungsantrag stellen]
+        A6[Bestaetigung erhalten]
+    end
+    subgraph Sachbearbeitung
+        B1[Antrag erfassen + ID pruefen]
+        B2[Loeschungsgrund pruefen]
+    end
+    subgraph DSB
+        C1[Art. 17 Abs. 3 Ausnahmen pruefen]
+        C2{Ausnahme greift?}
+        C3[Ablehnung mit Begruendung]
+    end
+    subgraph Fachabteilung
+        D1[Daten in allen Systemen loeschen]
+        D2[Backups markieren]
+        D3[Empfaenger benachrichtigen Art. 19]
+        D4[Loeschprotokoll erstellen]
+    end
+
+    A1 --> B1 --> B2 --> C1 --> C2
+    C2 -- Ja --> C3 --> A6
+    C2 -- Nein --> D1 --> D2 --> D3 --> D4 --> A6
+
+ +

5. Art. 17 Abs. 3 Ausnahmen (Checkliste)

+ + + + + + + +
AusnahmeBeschreibung
a) MeinungsfreiheitAusuebung des Rechts auf freie Meinungsaeusserung und Information
b) Rechtliche VerpflichtungErfuellung einer rechtlichen Verpflichtung (z.B. Aufbewahrungspflichten)
c) Oeffentliches InteresseGruende des oeffentlichen Interesses im Bereich Gesundheit
d) ArchivzweckeIm oeffentlichen Interesse liegende Archivzwecke, Forschung, Statistik
e) RechtsanspruecheGeltendmachung, Ausuebung oder Verteidigung von Rechtsanspruechen
+ +

6. Schritte

+ + + + + + + +
SchrittVerantwortlichBeschreibungFrist
1. Eingang + IDSachbearbeitungAntrag dokumentieren, Identitaet verifizieren3 Tage
2. AusnahmepruefungDSBArt. 17 Abs. 3 Checkliste durchgehen3 Tage
3. LoeschungFachabteilungDaten in allen Systemen loeschen3 Tage
4. Backup-HandlingITBackups markieren, bei naechstem Zyklus loeschen3 Tage
5. Mitteilung Art. 19FachabteilungEmpfaenger ueber Loeschung informieren2 Tage
', +'["FIRMENNAME", "VERSION", "DATUM", "DSB_NAME"]'::jsonb, +NOW(), NOW()), + +-- ============================================================================ +-- Art. 18 DSGVO — Recht auf Einschraenkung der Verarbeitung +-- ============================================================================ +(gen_random_uuid(), '9282a473-5c95-4b3a-bf78-0ecc0ec71d3e', 'dsr_process_art18', +'Prozessbeschreibung: Einschraenkung der Verarbeitung (Art. 18 DSGVO)', 'de', 'published', +'

Prozessbeschreibung: Einschraenkung der Verarbeitung nach Art. 18 DSGVO

+

Verantwortliche Stelle: {{FIRMENNAME}}
+Version: {{VERSION}}
+Stand: {{DATUM}}
+Genehmigt durch: {{DSB_NAME}}

+ +

1. Zweck

+

Regelung des Ablaufs bei Antraegen auf Einschraenkung der Verarbeitung personenbezogener Daten nach Art. 18 DSGVO.

+ +

2. Rechtsgrundlage und Voraussetzungen

+

Die betroffene Person kann die Einschraenkung verlangen wenn:

+ + +

3. Frist

+

Unverzueglich, spaetestens innerhalb von 14 Tagen.

+ +

4. Prozessablauf

+
+graph TD
+    subgraph Betroffener
+        A1[Antrag auf Einschraenkung]
+        A5[Bestaetigung erhalten]
+    end
+    subgraph Sachbearbeitung
+        B1[Antrag erfassen + ID pruefen]
+        B2[Voraussetzung nach Art. 18 Abs. 1 pruefen]
+        B3{Berechtigt?}
+    end
+    subgraph IT/Fachabteilung
+        C1[Daten markieren/sperren]
+        C2[Verarbeitung einschraenken]
+        C3[Empfaenger benachrichtigen Art. 19]
+    end
+    subgraph DSB
+        D1[Dokumentation + Wiedervorlage]
+    end
+
+    A1 --> B1 --> B2 --> B3
+    B3 -- Nein --> A5
+    B3 -- Ja --> C1 --> C2 --> C3 --> D1 --> A5
+
+ +

5. Erlaubte Verarbeitung bei Einschraenkung (Art. 18 Abs. 2)

+

Eingeschraenkte Daten duerfen nur noch verarbeitet werden fuer:

+', +'["FIRMENNAME", "VERSION", "DATUM", "DSB_NAME"]'::jsonb, +NOW(), NOW()), + +-- ============================================================================ +-- Art. 19 DSGVO — Mitteilungspflicht +-- ============================================================================ +(gen_random_uuid(), '9282a473-5c95-4b3a-bf78-0ecc0ec71d3e', 'dsr_process_art19', +'Prozessbeschreibung: Mitteilungspflicht (Art. 19 DSGVO)', 'de', 'published', +'

Prozessbeschreibung: Mitteilungspflicht nach Art. 19 DSGVO

+

Verantwortliche Stelle: {{FIRMENNAME}}
+Version: {{VERSION}}
+Stand: {{DATUM}}
+Genehmigt durch: {{DSB_NAME}}

+ +

1. Zweck

+

Art. 19 DSGVO verpflichtet den Verantwortlichen, alle Empfaenger, denen personenbezogene Daten offengelegt wurden, ueber jede Berichtigung (Art. 16), Loeschung (Art. 17) oder Einschraenkung (Art. 18) zu informieren — es sei denn, dies ist unverhaeltnismaessig.

+ +

2. Rechtsgrundlage

+ + +

3. Ausloeser

+

Art. 19 wird automatisch ausgeloest bei:

+ + +

4. Prozessablauf

+
+graph TD
+    subgraph Ausloeser
+        A1[Berichtigung/Loeschung/Einschraenkung durchgefuehrt]
+    end
+    subgraph Sachbearbeitung
+        B1[Alle Empfaenger aus VVT identifizieren]
+        B2[Auftragsverarbeiter identifizieren]
+        B3{Mitteilung verhaeltnismaessig?}
+        B4[Mitteilung an jeden Empfaenger senden]
+        B5[Unverhaeltnismaessigkeit dokumentieren]
+    end
+    subgraph DSB
+        C1[Mitteilung dokumentieren]
+        C2[Betroffenen ueber Empfaenger informieren auf Verlangen]
+    end
+
+    A1 --> B1 --> B2 --> B3
+    B3 -- Nein --> B5 --> C1
+    B3 -- Ja --> B4 --> C1 --> C2
+
+ +

5. Pflicht zur Auskunft ueber Empfaenger

+

Der Verantwortliche muss dem Betroffenen auf Verlangen die Empfaenger mitteilen, an die die Daten offengelegt wurden.

', +'["FIRMENNAME", "VERSION", "DATUM", "DSB_NAME"]'::jsonb, +NOW(), NOW()), + +-- ============================================================================ +-- Art. 20 DSGVO — Recht auf Datenuebertragbarkeit +-- ============================================================================ +(gen_random_uuid(), '9282a473-5c95-4b3a-bf78-0ecc0ec71d3e', 'dsr_process_art20', +'Prozessbeschreibung: Datenuebertragbarkeit (Art. 20 DSGVO)', 'de', 'published', +'

Prozessbeschreibung: Recht auf Datenuebertragbarkeit nach Art. 20 DSGVO

+

Verantwortliche Stelle: {{FIRMENNAME}}
+Version: {{VERSION}}
+Stand: {{DATUM}}
+Genehmigt durch: {{DSB_NAME}}

+ +

1. Zweck

+

Regelung des Ablaufs bei Antraegen auf Datenuebertragbarkeit. Die betroffene Person hat das Recht, die sie betreffenden personenbezogenen Daten in einem strukturierten, gaengigen und maschinenlesbaren Format zu erhalten.

+ +

2. Rechtsgrundlage und Voraussetzungen

+ + +

3. Frist

+

30 Tage nach Eingang der Anfrage.

+ +

4. Prozessablauf

+
+graph TD
+    subgraph Betroffener
+        A1[Antrag auf Datenuebertragung]
+        A5[Daten erhalten / Direktuebertragung bestaetigt]
+    end
+    subgraph Sachbearbeitung
+        B1[Antrag erfassen + ID pruefen]
+        B2[Rechtsgrundlage pruefen - Einwilligung oder Vertrag?]
+        B3{Voraussetzungen erfuellt?}
+    end
+    subgraph IT
+        C1[Daten identifizieren und extrahieren]
+        C2[In maschinenlesbares Format konvertieren - JSON/CSV/XML]
+        C3{Direktuebertragung gewuenscht?}
+        C4[Daten an Betroffenen uebergeben]
+        C5[Daten an anderen Verantwortlichen uebertragen]
+    end
+
+    A1 --> B1 --> B2 --> B3
+    B3 -- Nein --> A5
+    B3 -- Ja --> C1 --> C2 --> C3
+    C3 -- Nein --> C4 --> A5
+    C3 -- Ja --> C5 --> A5
+
+ +

5. Exportformate

+', +'["FIRMENNAME", "VERSION", "DATUM", "DSB_NAME"]'::jsonb, +NOW(), NOW()), + +-- ============================================================================ +-- Art. 21 DSGVO — Widerspruchsrecht +-- ============================================================================ +(gen_random_uuid(), '9282a473-5c95-4b3a-bf78-0ecc0ec71d3e', 'dsr_process_art21', +'Prozessbeschreibung: Widerspruchsrecht (Art. 21 DSGVO)', 'de', 'published', +'

Prozessbeschreibung: Widerspruchsrecht nach Art. 21 DSGVO

+

Verantwortliche Stelle: {{FIRMENNAME}}
+Version: {{VERSION}}
+Stand: {{DATUM}}
+Genehmigt durch: {{DSB_NAME}}

+ +

1. Zweck

+

Regelung des Ablaufs bei Widerspruechen gegen die Verarbeitung personenbezogener Daten nach Art. 21 DSGVO.

+ +

2. Rechtsgrundlage

+ + +

3. Frist

+

30 Tage nach Eingang des Widerspruchs.

+ +

4. Prozessablauf

+
+graph TD
+    subgraph Betroffener
+        A1[Widerspruch einlegen]
+        A6[Ergebnis erhalten]
+    end
+    subgraph Sachbearbeitung
+        B1[Widerspruch erfassen + ID pruefen]
+        B2{Art des Widerspruchs?}
+    end
+    subgraph Fall: Direktwerbung
+        C1[Verarbeitung fuer Direktwerbung SOFORT einstellen]
+        C2[Bestaetigung senden]
+    end
+    subgraph Fall: Allgemeiner Widerspruch
+        D1[Zwingende schutzwuerdige Gruende pruefen]
+        D2{Zwingende Gruende vorhanden?}
+        D3[Verarbeitung einstellen]
+        D4[Widerspruch ablehnen mit Begruendung]
+    end
+
+    A1 --> B1 --> B2
+    B2 -- Direktwerbung Art. 21 Abs. 2 --> C1 --> C2 --> A6
+    B2 -- Allgemein Art. 21 Abs. 1 --> D1 --> D2
+    D2 -- Nein --> D3 --> A6
+    D2 -- Ja --> D4 --> A6
+
+ +

5. Besonderheit: Widerspruch gegen Direktwerbung

+

Absolutes Recht — keine Interessenabwaegung erforderlich. Bei Widerspruch gegen Direktwerbung muss die Verarbeitung sofort eingestellt werden. Dies umfasst auch Profiling, soweit es mit Direktwerbung zusammenhaengt.

+ +

6. Interessenabwaegung bei allgemeinem Widerspruch

+

Bei Widerspruch nach Art. 21 Abs. 1 muss der Verantwortliche nachweisen, dass zwingende schutzwuerdige Gruende fuer die Verarbeitung vorliegen, die die Interessen des Betroffenen ueberwiegen.

', +'["FIRMENNAME", "VERSION", "DATUM", "DSB_NAME"]'::jsonb, +NOW(), NOW()) + +ON CONFLICT DO NOTHING;