{
    "schema": "https://saferpage.de/schemas/operator-remediation-ticket-delivery.v1",
    "generated_at": "2026-07-02T00:44:44+00:00",
    "domain": "qloc.de",
    "available": true,
    "scan": {
        "id": "c8be71b1-9245-4d1c-a5e1-8591b4c1a221",
        "checked_at": "2026-07-01 14:49:51.353422+02"
    },
    "summary": "Delivery-Paket für Nachweispositionen mit Webhook-, Slack-, Teams- und Jira-Payloads, HMAC-Receiver-Vertrag und Test-Fixture.",
    "dry_run": true,
    "does_not_send": true,
    "metrics": {
        "delivery_job_count": 21,
        "high_priority_count": 4,
        "channel_count": 4,
        "receiver_check_count": 6,
        "test_fixture_negative_count": 4
    },
    "signature_verification": {
        "algorithm": "HMAC-SHA256",
        "canonical_body": "Exakt canonical_webhook_body aus dem jeweiligen delivery_job signieren; keine Pretty-Print- oder Reordering-Variante verwenden.",
        "signature_secret_ref": "SAFERPAGE_OPERATOR_WEBHOOK_SECRET oder zielsystemspezifisches Secret im Secret Manager",
        "signature_header": "X-SaferPage-Signature",
        "signature_format": "sha256=<hex_hmac_sha256>",
        "body_sha256_header": "X-SaferPage-Body-SHA256",
        "idempotency_header": "X-SaferPage-Idempotency-Key",
        "receiver_must_check": [
            "HMAC über den exakten Request-Body stimmt mit X-SaferPage-Signature überein.",
            "SHA-256 des exakten Request-Body stimmt mit X-SaferPage-Body-SHA256 überein.",
            "X-SaferPage-Event ist operator.remediation.ticket_ready.",
            "X-SaferPage-Schema ist operator-remediation-ticket-delivery.v1.",
            "X-SaferPage-Idempotency-Key wurde für Domain, Scan und Nachweisposition noch nicht verarbeitet.",
            "Empfänger, Projekt, Queue und Verantwortlichkeit sind für diese Domain freigegeben."
        ],
        "failure_policy": "Bei fehlender Signatur, Body-Hash-Abweichung, Replay oder unbekanntem Zielsystem ablehnen, nicht teilweise verarbeiten und Auditlog ohne Secret-Werte schreiben."
    },
    "verification_test_fixture": {
        "public_test_secret": "saferpage_remediation_ticket_test_secret_do_not_use_in_production",
        "canonical_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"example.test\",\"scan_id\":\"scan_test_2026_06_09\",\"ticket_id\":\"remediation_test_ticket\",\"priority\":\"hoch\",\"severity\":\"critical\",\"owner\":\"Datenschutz/IT\",\"sla\":\"7 Tage\",\"title\":\"Consent-Befund reproduzieren und beheben\",\"evidence\":\"Test-Fixture für Receiver-Implementierung.\",\"action\":\"Testpayload unverändert verifizieren, Idempotency-Key prüfen und danach verwerfen.\",\"acceptance_criteria\":[\"Signatur stimmt mit exakt diesem Body überein.\",\"Idempotency-Key wurde noch nicht verarbeitet.\",\"Event, Schema und Domain sind erlaubt.\"],\"links\":{\"guide\":\"https://saferpage.de/guides/tracking-und-consent-reparieren\",\"evidence\":\"https://saferpage.de/befunde/example.test\",\"rescan\":\"https://saferpage.de/scanbetrieb/example.test\",\"report\":\"https://saferpage.de/example.test\",\"fix_guides\":\"https://saferpage.de/fix-guides/example.test\"}}",
        "canonical_body_sha256": "d400aae00e8ca67a606bbe2cef89a666f79174ced28defbbc8f869ada9d24d8d",
        "expected_signature": "sha256=13333abfdcab2d8aa3a9f1824427a27dc193726ca5bd82791e40061cee97f56d",
        "expected_signature_header": "X-SaferPage-Signature: sha256=13333abfdcab2d8aa3a9f1824427a27dc193726ca5bd82791e40061cee97f56d",
        "idempotency_key": "sp-fix-test-fixture",
        "positive_test": "Empfänger akzeptiert den unveränderten canonical_body mit expected_signature und verwirft ihn danach als Testevent.",
        "negative_tests": [
            "Ein geändertes Byte im Body muss abgelehnt werden.",
            "Ein fehlender oder doppelter X-SaferPage-Idempotency-Key muss abgelehnt werden.",
            "Eine Signatur mit anderem Secret muss abgelehnt werden.",
            "Ein erneuter Request mit derselben Idempotency-Key/Event-Kombination darf nicht erneut verarbeitet werden."
        ],
        "sample_commands": [
            "printf %s \"$BODY\" | openssl dgst -sha256 -hmac \"saferpage_remediation_ticket_test_secret_do_not_use_in_production\" -binary | xxd -p -c 256",
            "printf %s \"$BODY\" | sha256sum",
            "curl -X POST -H \"Content-Type: application/json\" -H \"X-SaferPage-Event: operator.remediation.ticket_ready\" -H \"X-SaferPage-Signature: sha256=13333abfdcab2d8aa3a9f1824427a27dc193726ca5bd82791e40061cee97f56d\" --data \"$BODY\" https://receiver.example.test/saferpage"
        ]
    },
    "retry_policy": {
        "max_attempts": 3,
        "backoff_seconds": [
            300,
            1800,
            7200
        ],
        "dead_letter_queue": "privacyops.remediation_ticket.failed"
    },
    "delivery_jobs": [
        {
            "id": "sp-fix-4b824dbd39d7f097fcc7e9f7",
            "ticket_id": "remediation_vendor_contract_transfer_fix",
            "channel": "jira_slack_webhook",
            "priority": "hoch",
            "severity": "critical",
            "owner": "Legal/Vendor-Verantwortung",
            "sla": "7 Tage",
            "summary": "[qloc.de] Anbieterakten, AVV/DPA und Transfers priorisiert schließen",
            "description": "Top-Anbieter mit Zweck, Rolle, AVV/DPA, TOMs, Subprozessoren und Transfergrundlage dokumentieren.",
            "idempotency_key": "sp-fix-4b824dbd39d7f097fcc7e9f7",
            "headers": {
                "X-SaferPage-Event": "operator.remediation.ticket_ready",
                "X-SaferPage-Schema": "operator-remediation-ticket-delivery.v1",
                "X-SaferPage-Idempotency-Key": "sp-fix-4b824dbd39d7f097fcc7e9f7",
                "X-SaferPage-Body-SHA256": "ce5b03a8157e4237fd3cb48b3c0da24e93e6ded23bf60ea706b2da6a53d5c47c",
                "X-SaferPage-Signature": "sha256=<HMAC über canonical_webhook_body>"
            },
            "webhook_payload": {
                "event": "operator.remediation.ticket_ready",
                "domain": "qloc.de",
                "scan_id": "c8be71b1-9245-4d1c-a5e1-8591b4c1a221",
                "ticket_id": "remediation_vendor_contract_transfer_fix",
                "priority": "hoch",
                "severity": "critical",
                "owner": "Legal/Vendor-Verantwortung",
                "sla": "7 Tage",
                "title": "Anbieterakten, AVV/DPA und Transfers priorisiert schließen",
                "evidence": "Vendor-Due-Diligence mit 2 Anbieter(n), 0 hohem Risiko, 2 AVV-/DPA-Prüfung(en) und 0 Transfer-/Jurisdiktionsfrage(n).",
                "action": "Top-Anbieter mit Zweck, Rolle, AVV/DPA, TOMs, Subprozessoren und Transfergrundlage dokumentieren.",
                "acceptance_criteria": [
                    "Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.",
                    "Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.",
                    "Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe."
                ],
                "links": {
                    "guide": "https://saferpage.de/guides/drittanbieter-datenschutz-erklaeren",
                    "evidence": "https://saferpage.de/befunde/qloc.de",
                    "rescan": "https://saferpage.de/scanbetrieb/qloc.de",
                    "report": "https://saferpage.de/qloc.de",
                    "fix_guides": "https://saferpage.de/fix-guides/qloc.de"
                }
            },
            "canonical_webhook_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"qloc.de\",\"scan_id\":\"c8be71b1-9245-4d1c-a5e1-8591b4c1a221\",\"ticket_id\":\"remediation_vendor_contract_transfer_fix\",\"priority\":\"hoch\",\"severity\":\"critical\",\"owner\":\"Legal/Vendor-Verantwortung\",\"sla\":\"7 Tage\",\"title\":\"Anbieterakten, AVV/DPA und Transfers priorisiert schließen\",\"evidence\":\"Vendor-Due-Diligence mit 2 Anbieter(n), 0 hohem Risiko, 2 AVV-/DPA-Prüfung(en) und 0 Transfer-/Jurisdiktionsfrage(n).\",\"action\":\"Top-Anbieter mit Zweck, Rolle, AVV/DPA, TOMs, Subprozessoren und Transfergrundlage dokumentieren.\",\"acceptance_criteria\":[\"Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.\",\"Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.\",\"Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe.\"],\"links\":{\"guide\":\"https://saferpage.de/guides/drittanbieter-datenschutz-erklaeren\",\"evidence\":\"https://saferpage.de/befunde/qloc.de\",\"rescan\":\"https://saferpage.de/scanbetrieb/qloc.de\",\"report\":\"https://saferpage.de/qloc.de\",\"fix_guides\":\"https://saferpage.de/fix-guides/qloc.de\"}}",
            "canonical_body_sha256": "ce5b03a8157e4237fd3cb48b3c0da24e93e6ded23bf60ea706b2da6a53d5c47c",
            "slack_payload": {
                "text": "[HOCH] qloc.de: Anbieterakten, AVV/DPA und Transfers priorisiert schließen",
                "blocks": [
                    {
                        "type": "section",
                        "text": {
                            "type": "mrkdwn",
                            "text": "*Anbieterakten, AVV/DPA und Transfers priorisiert schließen*\nTop-Anbieter mit Zweck, Rolle, AVV/DPA, TOMs, Subprozessoren und Transfergrundlage dokumentieren."
                        }
                    },
                    {
                        "type": "context",
                        "elements": [
                            {
                                "type": "mrkdwn",
                                "text": "Verantwortlich: Legal/Vendor-Verantwortung · Zielzeit: 7 Tage · https://saferpage.de/befunde/qloc.de"
                            }
                        ]
                    }
                ]
            },
            "teams_payload": {
                "type": "message",
                "summary": "[HOCH] qloc.de: Anbieterakten, AVV/DPA und Transfers priorisiert schließen",
                "attachments": [
                    {
                        "contentType": "application/vnd.microsoft.card.adaptive",
                        "content": {
                            "type": "AdaptiveCard",
                            "version": "1.4",
                            "body": [
                                {
                                    "type": "TextBlock",
                                    "weight": "Bolder",
                                    "text": "Anbieterakten, AVV/DPA und Transfers priorisiert schließen"
                                },
                                {
                                    "type": "TextBlock",
                                    "wrap": true,
                                    "text": "Top-Anbieter mit Zweck, Rolle, AVV/DPA, TOMs, Subprozessoren und Transfergrundlage dokumentieren."
                                },
                                {
                                    "type": "FactSet",
                                    "facts": [
                                        {
                                            "title": "Domain",
                                            "value": "qloc.de"
                                        },
                                        {
                                            "title": "Verantwortlich",
                                            "value": "Legal/Vendor-Verantwortung"
                                        },
                                        {
                                            "title": "Zielzeit",
                                            "value": "7 Tage"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                ]
            },
            "jira_payload": {
                "fields": {
                    "summary": "[qloc.de] Anbieterakten, AVV/DPA und Transfers priorisiert schließen",
                    "description": "Top-Anbieter mit Zweck, Rolle, AVV/DPA, TOMs, Subprozessoren und Transfergrundlage dokumentieren.\n\nNachweis: https://saferpage.de/befunde/qloc.de\nHintergrundseite: https://saferpage.de/guides/drittanbieter-datenschutz-erklaeren\nRe-Scan: https://saferpage.de/scanbetrieb/qloc.de",
                    "labels": [
                        "saferpage",
                        "privacyops",
                        "remediation",
                        "hoch"
                    ],
                    "priority": {
                        "name": "High"
                    }
                }
            }
        },
        {
            "id": "sp-fix-3d8a11facc74f05769e39f30",
            "ticket_id": "remediation_beacon_api_usage",
            "channel": "jira_slack_webhook",
            "priority": "hoch",
            "severity": "critical",
            "owner": "Website-Betrieb/Datenschutz",
            "sla": "7 Tage",
            "summary": "[qloc.de] Beacon-/Keepalive-Telemetrie erkannt",
            "description": "navigator.sendBeacon, keepalive-Fetch und vergleichbare Telemetrie auf Consent, Anbieter und Datenminimierung prüfen.",
            "idempotency_key": "sp-fix-3d8a11facc74f05769e39f30",
            "headers": {
                "X-SaferPage-Event": "operator.remediation.ticket_ready",
                "X-SaferPage-Schema": "operator-remediation-ticket-delivery.v1",
                "X-SaferPage-Idempotency-Key": "sp-fix-3d8a11facc74f05769e39f30",
                "X-SaferPage-Body-SHA256": "2fc50aaec12e6abd5bb1ffaf28e1d7c91c4055bd3a258ef39ca67039d870c525",
                "X-SaferPage-Signature": "sha256=<HMAC über canonical_webhook_body>"
            },
            "webhook_payload": {
                "event": "operator.remediation.ticket_ready",
                "domain": "qloc.de",
                "scan_id": "c8be71b1-9245-4d1c-a5e1-8591b4c1a221",
                "ticket_id": "remediation_beacon_api_usage",
                "priority": "hoch",
                "severity": "critical",
                "owner": "Website-Betrieb/Datenschutz",
                "sla": "7 Tage",
                "title": "Beacon-/Keepalive-Telemetrie erkannt",
                "evidence": "",
                "action": "navigator.sendBeacon, keepalive-Fetch und vergleichbare Telemetrie auf Consent, Anbieter und Datenminimierung prüfen.",
                "acceptance_criteria": [
                    "Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.",
                    "Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.",
                    "Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe."
                ],
                "links": {
                    "guide": "https://saferpage.de/guides/tracking-pixel-und-beacons-begrenzen",
                    "evidence": "https://saferpage.de/befunde/qloc.de",
                    "rescan": "https://saferpage.de/scanbetrieb/qloc.de",
                    "report": "https://saferpage.de/qloc.de",
                    "fix_guides": "https://saferpage.de/fix-guides/qloc.de"
                }
            },
            "canonical_webhook_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"qloc.de\",\"scan_id\":\"c8be71b1-9245-4d1c-a5e1-8591b4c1a221\",\"ticket_id\":\"remediation_beacon_api_usage\",\"priority\":\"hoch\",\"severity\":\"critical\",\"owner\":\"Website-Betrieb/Datenschutz\",\"sla\":\"7 Tage\",\"title\":\"Beacon-/Keepalive-Telemetrie erkannt\",\"evidence\":\"\",\"action\":\"navigator.sendBeacon, keepalive-Fetch und vergleichbare Telemetrie auf Consent, Anbieter und Datenminimierung prüfen.\",\"acceptance_criteria\":[\"Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.\",\"Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.\",\"Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe.\"],\"links\":{\"guide\":\"https://saferpage.de/guides/tracking-pixel-und-beacons-begrenzen\",\"evidence\":\"https://saferpage.de/befunde/qloc.de\",\"rescan\":\"https://saferpage.de/scanbetrieb/qloc.de\",\"report\":\"https://saferpage.de/qloc.de\",\"fix_guides\":\"https://saferpage.de/fix-guides/qloc.de\"}}",
            "canonical_body_sha256": "2fc50aaec12e6abd5bb1ffaf28e1d7c91c4055bd3a258ef39ca67039d870c525",
            "slack_payload": {
                "text": "[HOCH] qloc.de: Beacon-/Keepalive-Telemetrie erkannt",
                "blocks": [
                    {
                        "type": "section",
                        "text": {
                            "type": "mrkdwn",
                            "text": "*Beacon-/Keepalive-Telemetrie erkannt*\nnavigator.sendBeacon, keepalive-Fetch und vergleichbare Telemetrie auf Consent, Anbieter und Datenminimierung prüfen."
                        }
                    },
                    {
                        "type": "context",
                        "elements": [
                            {
                                "type": "mrkdwn",
                                "text": "Verantwortlich: Website-Betrieb/Datenschutz · Zielzeit: 7 Tage · https://saferpage.de/befunde/qloc.de"
                            }
                        ]
                    }
                ]
            },
            "teams_payload": {
                "type": "message",
                "summary": "[HOCH] qloc.de: Beacon-/Keepalive-Telemetrie erkannt",
                "attachments": [
                    {
                        "contentType": "application/vnd.microsoft.card.adaptive",
                        "content": {
                            "type": "AdaptiveCard",
                            "version": "1.4",
                            "body": [
                                {
                                    "type": "TextBlock",
                                    "weight": "Bolder",
                                    "text": "Beacon-/Keepalive-Telemetrie erkannt"
                                },
                                {
                                    "type": "TextBlock",
                                    "wrap": true,
                                    "text": "navigator.sendBeacon, keepalive-Fetch und vergleichbare Telemetrie auf Consent, Anbieter und Datenminimierung prüfen."
                                },
                                {
                                    "type": "FactSet",
                                    "facts": [
                                        {
                                            "title": "Domain",
                                            "value": "qloc.de"
                                        },
                                        {
                                            "title": "Verantwortlich",
                                            "value": "Website-Betrieb/Datenschutz"
                                        },
                                        {
                                            "title": "Zielzeit",
                                            "value": "7 Tage"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                ]
            },
            "jira_payload": {
                "fields": {
                    "summary": "[qloc.de] Beacon-/Keepalive-Telemetrie erkannt",
                    "description": "navigator.sendBeacon, keepalive-Fetch und vergleichbare Telemetrie auf Consent, Anbieter und Datenminimierung prüfen.\n\nNachweis: https://saferpage.de/befunde/qloc.de\nHintergrundseite: https://saferpage.de/guides/tracking-pixel-und-beacons-begrenzen\nRe-Scan: https://saferpage.de/scanbetrieb/qloc.de",
                    "labels": [
                        "saferpage",
                        "privacyops",
                        "remediation",
                        "hoch"
                    ],
                    "priority": {
                        "name": "High"
                    }
                }
            }
        },
        {
            "id": "sp-fix-1e7ed127a69794539da97f4f",
            "ticket_id": "remediation_button_name_missing",
            "channel": "jira_slack_webhook",
            "priority": "hoch",
            "severity": "critical",
            "owner": "Website-Betrieb/Datenschutz",
            "sla": "7 Tage",
            "summary": "[qloc.de] Buttons ohne erkennbaren Namen",
            "description": "Buttons mit sichtbarem Text oder aria-label beschriften.",
            "idempotency_key": "sp-fix-1e7ed127a69794539da97f4f",
            "headers": {
                "X-SaferPage-Event": "operator.remediation.ticket_ready",
                "X-SaferPage-Schema": "operator-remediation-ticket-delivery.v1",
                "X-SaferPage-Idempotency-Key": "sp-fix-1e7ed127a69794539da97f4f",
                "X-SaferPage-Body-SHA256": "fcd5718ab692f51fe496e263dd0d83454db23e891b3fdcb19e88dccbbb929d56",
                "X-SaferPage-Signature": "sha256=<HMAC über canonical_webhook_body>"
            },
            "webhook_payload": {
                "event": "operator.remediation.ticket_ready",
                "domain": "qloc.de",
                "scan_id": "c8be71b1-9245-4d1c-a5e1-8591b4c1a221",
                "ticket_id": "remediation_button_name_missing",
                "priority": "hoch",
                "severity": "critical",
                "owner": "Website-Betrieb/Datenschutz",
                "sla": "7 Tage",
                "title": "Buttons ohne erkennbaren Namen",
                "evidence": "",
                "action": "Buttons mit sichtbarem Text oder aria-label beschriften.",
                "acceptance_criteria": [
                    "Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.",
                    "Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.",
                    "Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe."
                ],
                "links": {
                    "guide": "https://saferpage.de/guides/barrierefreiheit-cookie-banner-formulare",
                    "evidence": "https://saferpage.de/befunde/qloc.de",
                    "rescan": "https://saferpage.de/scanbetrieb/qloc.de",
                    "report": "https://saferpage.de/qloc.de",
                    "fix_guides": "https://saferpage.de/fix-guides/qloc.de"
                }
            },
            "canonical_webhook_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"qloc.de\",\"scan_id\":\"c8be71b1-9245-4d1c-a5e1-8591b4c1a221\",\"ticket_id\":\"remediation_button_name_missing\",\"priority\":\"hoch\",\"severity\":\"critical\",\"owner\":\"Website-Betrieb/Datenschutz\",\"sla\":\"7 Tage\",\"title\":\"Buttons ohne erkennbaren Namen\",\"evidence\":\"\",\"action\":\"Buttons mit sichtbarem Text oder aria-label beschriften.\",\"acceptance_criteria\":[\"Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.\",\"Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.\",\"Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe.\"],\"links\":{\"guide\":\"https://saferpage.de/guides/barrierefreiheit-cookie-banner-formulare\",\"evidence\":\"https://saferpage.de/befunde/qloc.de\",\"rescan\":\"https://saferpage.de/scanbetrieb/qloc.de\",\"report\":\"https://saferpage.de/qloc.de\",\"fix_guides\":\"https://saferpage.de/fix-guides/qloc.de\"}}",
            "canonical_body_sha256": "fcd5718ab692f51fe496e263dd0d83454db23e891b3fdcb19e88dccbbb929d56",
            "slack_payload": {
                "text": "[HOCH] qloc.de: Buttons ohne erkennbaren Namen",
                "blocks": [
                    {
                        "type": "section",
                        "text": {
                            "type": "mrkdwn",
                            "text": "*Buttons ohne erkennbaren Namen*\nButtons mit sichtbarem Text oder aria-label beschriften."
                        }
                    },
                    {
                        "type": "context",
                        "elements": [
                            {
                                "type": "mrkdwn",
                                "text": "Verantwortlich: Website-Betrieb/Datenschutz · Zielzeit: 7 Tage · https://saferpage.de/befunde/qloc.de"
                            }
                        ]
                    }
                ]
            },
            "teams_payload": {
                "type": "message",
                "summary": "[HOCH] qloc.de: Buttons ohne erkennbaren Namen",
                "attachments": [
                    {
                        "contentType": "application/vnd.microsoft.card.adaptive",
                        "content": {
                            "type": "AdaptiveCard",
                            "version": "1.4",
                            "body": [
                                {
                                    "type": "TextBlock",
                                    "weight": "Bolder",
                                    "text": "Buttons ohne erkennbaren Namen"
                                },
                                {
                                    "type": "TextBlock",
                                    "wrap": true,
                                    "text": "Buttons mit sichtbarem Text oder aria-label beschriften."
                                },
                                {
                                    "type": "FactSet",
                                    "facts": [
                                        {
                                            "title": "Domain",
                                            "value": "qloc.de"
                                        },
                                        {
                                            "title": "Verantwortlich",
                                            "value": "Website-Betrieb/Datenschutz"
                                        },
                                        {
                                            "title": "Zielzeit",
                                            "value": "7 Tage"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                ]
            },
            "jira_payload": {
                "fields": {
                    "summary": "[qloc.de] Buttons ohne erkennbaren Namen",
                    "description": "Buttons mit sichtbarem Text oder aria-label beschriften.\n\nNachweis: https://saferpage.de/befunde/qloc.de\nHintergrundseite: https://saferpage.de/guides/barrierefreiheit-cookie-banner-formulare\nRe-Scan: https://saferpage.de/scanbetrieb/qloc.de",
                    "labels": [
                        "saferpage",
                        "privacyops",
                        "remediation",
                        "hoch"
                    ],
                    "priority": {
                        "name": "High"
                    }
                }
            }
        },
        {
            "id": "sp-fix-78b383db046ed4a78041fbf6",
            "ticket_id": "remediation_external_canonical",
            "channel": "jira_slack_webhook",
            "priority": "hoch",
            "severity": "critical",
            "owner": "Website-Betrieb/Datenschutz",
            "sla": "7 Tage",
            "summary": "[qloc.de] Canonical zeigt auf fremde Domain",
            "description": "Canonical-Tags sollten nur bewusst auf fremde Domains zeigen; sonst kann Traffic/Ranking umgeleitet werden.",
            "idempotency_key": "sp-fix-78b383db046ed4a78041fbf6",
            "headers": {
                "X-SaferPage-Event": "operator.remediation.ticket_ready",
                "X-SaferPage-Schema": "operator-remediation-ticket-delivery.v1",
                "X-SaferPage-Idempotency-Key": "sp-fix-78b383db046ed4a78041fbf6",
                "X-SaferPage-Body-SHA256": "e4462959cf641aa8bf77e10354d26f0093a59de734c04fdc83fd8600a3296789",
                "X-SaferPage-Signature": "sha256=<HMAC über canonical_webhook_body>"
            },
            "webhook_payload": {
                "event": "operator.remediation.ticket_ready",
                "domain": "qloc.de",
                "scan_id": "c8be71b1-9245-4d1c-a5e1-8591b4c1a221",
                "ticket_id": "remediation_external_canonical",
                "priority": "hoch",
                "severity": "critical",
                "owner": "Website-Betrieb/Datenschutz",
                "sla": "7 Tage",
                "title": "Canonical zeigt auf fremde Domain",
                "evidence": "",
                "action": "Canonical-Tags sollten nur bewusst auf fremde Domains zeigen; sonst kann Traffic/Ranking umgeleitet werden.",
                "acceptance_criteria": [
                    "Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.",
                    "Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.",
                    "Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe."
                ],
                "links": {
                    "guide": "https://saferpage.de/guides/seo-spam-und-cloaking-bereinigen",
                    "evidence": "https://saferpage.de/befunde/qloc.de",
                    "rescan": "https://saferpage.de/scanbetrieb/qloc.de",
                    "report": "https://saferpage.de/qloc.de",
                    "fix_guides": "https://saferpage.de/fix-guides/qloc.de"
                }
            },
            "canonical_webhook_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"qloc.de\",\"scan_id\":\"c8be71b1-9245-4d1c-a5e1-8591b4c1a221\",\"ticket_id\":\"remediation_external_canonical\",\"priority\":\"hoch\",\"severity\":\"critical\",\"owner\":\"Website-Betrieb/Datenschutz\",\"sla\":\"7 Tage\",\"title\":\"Canonical zeigt auf fremde Domain\",\"evidence\":\"\",\"action\":\"Canonical-Tags sollten nur bewusst auf fremde Domains zeigen; sonst kann Traffic/Ranking umgeleitet werden.\",\"acceptance_criteria\":[\"Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.\",\"Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.\",\"Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe.\"],\"links\":{\"guide\":\"https://saferpage.de/guides/seo-spam-und-cloaking-bereinigen\",\"evidence\":\"https://saferpage.de/befunde/qloc.de\",\"rescan\":\"https://saferpage.de/scanbetrieb/qloc.de\",\"report\":\"https://saferpage.de/qloc.de\",\"fix_guides\":\"https://saferpage.de/fix-guides/qloc.de\"}}",
            "canonical_body_sha256": "e4462959cf641aa8bf77e10354d26f0093a59de734c04fdc83fd8600a3296789",
            "slack_payload": {
                "text": "[HOCH] qloc.de: Canonical zeigt auf fremde Domain",
                "blocks": [
                    {
                        "type": "section",
                        "text": {
                            "type": "mrkdwn",
                            "text": "*Canonical zeigt auf fremde Domain*\nCanonical-Tags sollten nur bewusst auf fremde Domains zeigen; sonst kann Traffic/Ranking umgeleitet werden."
                        }
                    },
                    {
                        "type": "context",
                        "elements": [
                            {
                                "type": "mrkdwn",
                                "text": "Verantwortlich: Website-Betrieb/Datenschutz · Zielzeit: 7 Tage · https://saferpage.de/befunde/qloc.de"
                            }
                        ]
                    }
                ]
            },
            "teams_payload": {
                "type": "message",
                "summary": "[HOCH] qloc.de: Canonical zeigt auf fremde Domain",
                "attachments": [
                    {
                        "contentType": "application/vnd.microsoft.card.adaptive",
                        "content": {
                            "type": "AdaptiveCard",
                            "version": "1.4",
                            "body": [
                                {
                                    "type": "TextBlock",
                                    "weight": "Bolder",
                                    "text": "Canonical zeigt auf fremde Domain"
                                },
                                {
                                    "type": "TextBlock",
                                    "wrap": true,
                                    "text": "Canonical-Tags sollten nur bewusst auf fremde Domains zeigen; sonst kann Traffic/Ranking umgeleitet werden."
                                },
                                {
                                    "type": "FactSet",
                                    "facts": [
                                        {
                                            "title": "Domain",
                                            "value": "qloc.de"
                                        },
                                        {
                                            "title": "Verantwortlich",
                                            "value": "Website-Betrieb/Datenschutz"
                                        },
                                        {
                                            "title": "Zielzeit",
                                            "value": "7 Tage"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                ]
            },
            "jira_payload": {
                "fields": {
                    "summary": "[qloc.de] Canonical zeigt auf fremde Domain",
                    "description": "Canonical-Tags sollten nur bewusst auf fremde Domains zeigen; sonst kann Traffic/Ranking umgeleitet werden.\n\nNachweis: https://saferpage.de/befunde/qloc.de\nHintergrundseite: https://saferpage.de/guides/seo-spam-und-cloaking-bereinigen\nRe-Scan: https://saferpage.de/scanbetrieb/qloc.de",
                    "labels": [
                        "saferpage",
                        "privacyops",
                        "remediation",
                        "hoch"
                    ],
                    "priority": {
                        "name": "High"
                    }
                }
            }
        },
        {
            "id": "sp-fix-92d6ba2235a32d689d20e610",
            "ticket_id": "remediation_module_accessibility_usability",
            "channel": "jira_webhook",
            "priority": "mittel",
            "severity": "warning",
            "owner": "Website-Betrieb/Datenschutz",
            "sla": "30 Tage",
            "summary": "[qloc.de] Barrierefreiheit & Usability",
            "description": "Alt-Texte, Formularlabels, Button-Namen, lang-Attribut und Überschriftenstruktur für Nutzer und Screenreader prüfen.",
            "idempotency_key": "sp-fix-92d6ba2235a32d689d20e610",
            "headers": {
                "X-SaferPage-Event": "operator.remediation.ticket_ready",
                "X-SaferPage-Schema": "operator-remediation-ticket-delivery.v1",
                "X-SaferPage-Idempotency-Key": "sp-fix-92d6ba2235a32d689d20e610",
                "X-SaferPage-Body-SHA256": "29a8eb6f46ae62b5057e56a45693fbb93bbcd52b109da486f2d93425ec09e2d4",
                "X-SaferPage-Signature": "sha256=<HMAC über canonical_webhook_body>"
            },
            "webhook_payload": {
                "event": "operator.remediation.ticket_ready",
                "domain": "qloc.de",
                "scan_id": "c8be71b1-9245-4d1c-a5e1-8591b4c1a221",
                "ticket_id": "remediation_module_accessibility_usability",
                "priority": "mittel",
                "severity": "warning",
                "owner": "Website-Betrieb/Datenschutz",
                "sla": "30 Tage",
                "title": "Barrierefreiheit & Usability",
                "evidence": "39 Bild(er) ohne alt, 0 Formularfeld(er) ohne Beschriftung, 12 Button(s) ohne Namen.",
                "action": "Alt-Texte, Formularlabels, Button-Namen, lang-Attribut und Überschriftenstruktur für Nutzer und Screenreader prüfen.",
                "acceptance_criteria": [
                    "Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.",
                    "Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.",
                    "Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe."
                ],
                "links": {
                    "guide": "https://saferpage.de/guides/barrierefreiheit-cookie-banner-formulare",
                    "evidence": "https://saferpage.de/befunde/qloc.de",
                    "rescan": "https://saferpage.de/scanbetrieb/qloc.de",
                    "report": "https://saferpage.de/qloc.de",
                    "fix_guides": "https://saferpage.de/fix-guides/qloc.de"
                }
            },
            "canonical_webhook_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"qloc.de\",\"scan_id\":\"c8be71b1-9245-4d1c-a5e1-8591b4c1a221\",\"ticket_id\":\"remediation_module_accessibility_usability\",\"priority\":\"mittel\",\"severity\":\"warning\",\"owner\":\"Website-Betrieb/Datenschutz\",\"sla\":\"30 Tage\",\"title\":\"Barrierefreiheit & Usability\",\"evidence\":\"39 Bild(er) ohne alt, 0 Formularfeld(er) ohne Beschriftung, 12 Button(s) ohne Namen.\",\"action\":\"Alt-Texte, Formularlabels, Button-Namen, lang-Attribut und Überschriftenstruktur für Nutzer und Screenreader prüfen.\",\"acceptance_criteria\":[\"Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.\",\"Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.\",\"Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe.\"],\"links\":{\"guide\":\"https://saferpage.de/guides/barrierefreiheit-cookie-banner-formulare\",\"evidence\":\"https://saferpage.de/befunde/qloc.de\",\"rescan\":\"https://saferpage.de/scanbetrieb/qloc.de\",\"report\":\"https://saferpage.de/qloc.de\",\"fix_guides\":\"https://saferpage.de/fix-guides/qloc.de\"}}",
            "canonical_body_sha256": "29a8eb6f46ae62b5057e56a45693fbb93bbcd52b109da486f2d93425ec09e2d4",
            "slack_payload": {
                "text": "[MITTEL] qloc.de: Barrierefreiheit & Usability",
                "blocks": [
                    {
                        "type": "section",
                        "text": {
                            "type": "mrkdwn",
                            "text": "*Barrierefreiheit & Usability*\nAlt-Texte, Formularlabels, Button-Namen, lang-Attribut und Überschriftenstruktur für Nutzer und Screenreader prüfen."
                        }
                    },
                    {
                        "type": "context",
                        "elements": [
                            {
                                "type": "mrkdwn",
                                "text": "Verantwortlich: Website-Betrieb/Datenschutz · Zielzeit: 30 Tage · https://saferpage.de/befunde/qloc.de"
                            }
                        ]
                    }
                ]
            },
            "teams_payload": {
                "type": "message",
                "summary": "[MITTEL] qloc.de: Barrierefreiheit & Usability",
                "attachments": [
                    {
                        "contentType": "application/vnd.microsoft.card.adaptive",
                        "content": {
                            "type": "AdaptiveCard",
                            "version": "1.4",
                            "body": [
                                {
                                    "type": "TextBlock",
                                    "weight": "Bolder",
                                    "text": "Barrierefreiheit & Usability"
                                },
                                {
                                    "type": "TextBlock",
                                    "wrap": true,
                                    "text": "Alt-Texte, Formularlabels, Button-Namen, lang-Attribut und Überschriftenstruktur für Nutzer und Screenreader prüfen."
                                },
                                {
                                    "type": "FactSet",
                                    "facts": [
                                        {
                                            "title": "Domain",
                                            "value": "qloc.de"
                                        },
                                        {
                                            "title": "Verantwortlich",
                                            "value": "Website-Betrieb/Datenschutz"
                                        },
                                        {
                                            "title": "Zielzeit",
                                            "value": "30 Tage"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                ]
            },
            "jira_payload": {
                "fields": {
                    "summary": "[qloc.de] Barrierefreiheit & Usability",
                    "description": "Alt-Texte, Formularlabels, Button-Namen, lang-Attribut und Überschriftenstruktur für Nutzer und Screenreader prüfen.\n\nNachweis: https://saferpage.de/befunde/qloc.de\nHintergrundseite: https://saferpage.de/guides/barrierefreiheit-cookie-banner-formulare\nRe-Scan: https://saferpage.de/scanbetrieb/qloc.de",
                    "labels": [
                        "saferpage",
                        "privacyops",
                        "remediation",
                        "mittel"
                    ],
                    "priority": {
                        "name": "Medium"
                    }
                }
            }
        },
        {
            "id": "sp-fix-46d6e52b25e3dc8076d0d492",
            "ticket_id": "remediation_accessibility_gap",
            "channel": "jira_webhook",
            "priority": "mittel",
            "severity": "warning",
            "owner": "UX/IT",
            "sla": "30 Tage",
            "summary": "[qloc.de] Cookie-Banner, Formulare und mobile Nutzung barriereärmer machen",
            "description": "Befund mit Hintergrundseite einordnen und danach erneut scannen.",
            "idempotency_key": "sp-fix-46d6e52b25e3dc8076d0d492",
            "headers": {
                "X-SaferPage-Event": "operator.remediation.ticket_ready",
                "X-SaferPage-Schema": "operator-remediation-ticket-delivery.v1",
                "X-SaferPage-Idempotency-Key": "sp-fix-46d6e52b25e3dc8076d0d492",
                "X-SaferPage-Body-SHA256": "c57586adcb714e747fbcbdd8826e75e665745a10371a324906ee342ff80adc94",
                "X-SaferPage-Signature": "sha256=<HMAC über canonical_webhook_body>"
            },
            "webhook_payload": {
                "event": "operator.remediation.ticket_ready",
                "domain": "qloc.de",
                "scan_id": "c8be71b1-9245-4d1c-a5e1-8591b4c1a221",
                "ticket_id": "remediation_accessibility_gap",
                "priority": "mittel",
                "severity": "warning",
                "owner": "UX/IT",
                "sla": "30 Tage",
                "title": "Cookie-Banner, Formulare und mobile Nutzung barriereärmer machen",
                "evidence": "69 Bild(er), 0 Formularfeld(er), 16 Button(s) im passiven HTML-Sample auf Basis-Barrierefreiheit geprüft.",
                "action": "Befund mit Hintergrundseite einordnen und danach erneut scannen.",
                "acceptance_criteria": [
                    "Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.",
                    "Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.",
                    "Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe."
                ],
                "links": {
                    "guide": "https://saferpage.de/guides/barrierefreiheit-cookie-banner-formulare",
                    "evidence": "https://saferpage.de/befunde/qloc.de",
                    "rescan": "https://saferpage.de/scanbetrieb/qloc.de",
                    "report": "https://saferpage.de/qloc.de",
                    "fix_guides": "https://saferpage.de/fix-guides/qloc.de"
                }
            },
            "canonical_webhook_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"qloc.de\",\"scan_id\":\"c8be71b1-9245-4d1c-a5e1-8591b4c1a221\",\"ticket_id\":\"remediation_accessibility_gap\",\"priority\":\"mittel\",\"severity\":\"warning\",\"owner\":\"UX/IT\",\"sla\":\"30 Tage\",\"title\":\"Cookie-Banner, Formulare und mobile Nutzung barriereärmer machen\",\"evidence\":\"69 Bild(er), 0 Formularfeld(er), 16 Button(s) im passiven HTML-Sample auf Basis-Barrierefreiheit geprüft.\",\"action\":\"Befund mit Hintergrundseite einordnen und danach erneut scannen.\",\"acceptance_criteria\":[\"Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.\",\"Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.\",\"Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe.\"],\"links\":{\"guide\":\"https://saferpage.de/guides/barrierefreiheit-cookie-banner-formulare\",\"evidence\":\"https://saferpage.de/befunde/qloc.de\",\"rescan\":\"https://saferpage.de/scanbetrieb/qloc.de\",\"report\":\"https://saferpage.de/qloc.de\",\"fix_guides\":\"https://saferpage.de/fix-guides/qloc.de\"}}",
            "canonical_body_sha256": "c57586adcb714e747fbcbdd8826e75e665745a10371a324906ee342ff80adc94",
            "slack_payload": {
                "text": "[MITTEL] qloc.de: Cookie-Banner, Formulare und mobile Nutzung barriereärmer machen",
                "blocks": [
                    {
                        "type": "section",
                        "text": {
                            "type": "mrkdwn",
                            "text": "*Cookie-Banner, Formulare und mobile Nutzung barriereärmer machen*\nBefund mit Hintergrundseite einordnen und danach erneut scannen."
                        }
                    },
                    {
                        "type": "context",
                        "elements": [
                            {
                                "type": "mrkdwn",
                                "text": "Verantwortlich: UX/IT · Zielzeit: 30 Tage · https://saferpage.de/befunde/qloc.de"
                            }
                        ]
                    }
                ]
            },
            "teams_payload": {
                "type": "message",
                "summary": "[MITTEL] qloc.de: Cookie-Banner, Formulare und mobile Nutzung barriereärmer machen",
                "attachments": [
                    {
                        "contentType": "application/vnd.microsoft.card.adaptive",
                        "content": {
                            "type": "AdaptiveCard",
                            "version": "1.4",
                            "body": [
                                {
                                    "type": "TextBlock",
                                    "weight": "Bolder",
                                    "text": "Cookie-Banner, Formulare und mobile Nutzung barriereärmer machen"
                                },
                                {
                                    "type": "TextBlock",
                                    "wrap": true,
                                    "text": "Befund mit Hintergrundseite einordnen und danach erneut scannen."
                                },
                                {
                                    "type": "FactSet",
                                    "facts": [
                                        {
                                            "title": "Domain",
                                            "value": "qloc.de"
                                        },
                                        {
                                            "title": "Verantwortlich",
                                            "value": "UX/IT"
                                        },
                                        {
                                            "title": "Zielzeit",
                                            "value": "30 Tage"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                ]
            },
            "jira_payload": {
                "fields": {
                    "summary": "[qloc.de] Cookie-Banner, Formulare und mobile Nutzung barriereärmer machen",
                    "description": "Befund mit Hintergrundseite einordnen und danach erneut scannen.\n\nNachweis: https://saferpage.de/befunde/qloc.de\nHintergrundseite: https://saferpage.de/guides/barrierefreiheit-cookie-banner-formulare\nRe-Scan: https://saferpage.de/scanbetrieb/qloc.de",
                    "labels": [
                        "saferpage",
                        "privacyops",
                        "remediation",
                        "mittel"
                    ],
                    "priority": {
                        "name": "Medium"
                    }
                }
            }
        },
        {
            "id": "sp-fix-0aa2c75ca4a9628f53864cfd",
            "ticket_id": "mapping_vendor_status.qloc.de",
            "channel": "jira_webhook",
            "priority": "mittel",
            "severity": "warning",
            "owner": "Marketing/IT/Datenschutz",
            "sla": "30 Tage",
            "summary": "[qloc.de] status.qloc.de",
            "description": "Zweck, Rolle, AVV/DPA, Region, Transfer und Consent-Kategorie bestätigen.",
            "idempotency_key": "sp-fix-0aa2c75ca4a9628f53864cfd",
            "headers": {
                "X-SaferPage-Event": "operator.remediation.ticket_ready",
                "X-SaferPage-Schema": "operator-remediation-ticket-delivery.v1",
                "X-SaferPage-Idempotency-Key": "sp-fix-0aa2c75ca4a9628f53864cfd",
                "X-SaferPage-Body-SHA256": "3b82920ec7050b2495fa08447004bcee97b2d958b9c657581eb562e0ba0610af",
                "X-SaferPage-Signature": "sha256=<HMAC über canonical_webhook_body>"
            },
            "webhook_payload": {
                "event": "operator.remediation.ticket_ready",
                "domain": "qloc.de",
                "scan_id": "c8be71b1-9245-4d1c-a5e1-8591b4c1a221",
                "ticket_id": "mapping_vendor_status.qloc.de",
                "priority": "mittel",
                "severity": "warning",
                "owner": "Marketing/IT/Datenschutz",
                "sla": "30 Tage",
                "title": "status.qloc.de",
                "evidence": "Sonstige",
                "action": "Zweck, Rolle, AVV/DPA, Region, Transfer und Consent-Kategorie bestätigen.",
                "acceptance_criteria": [
                    "Dienst ist einer Servicekarte mit Anbieter, Zweck und Kategorie zugeordnet.",
                    "Consent-Banner, Datenschutzhinweis und Anbieterregister verwenden dieselbe Bezeichnung.",
                    "Re-Scan zeigt keine unbekannte oder ungeklärte Tracking-Auslösung."
                ],
                "links": {
                    "guide": "https://saferpage.de/guides/drittanbieter-datenschutz-erklaeren",
                    "evidence": "https://saferpage.de/anbieter/qloc.de",
                    "rescan": "https://saferpage.de/scanbetrieb/qloc.de",
                    "report": "https://saferpage.de/qloc.de",
                    "fix_guides": "https://saferpage.de/fix-guides/qloc.de"
                }
            },
            "canonical_webhook_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"qloc.de\",\"scan_id\":\"c8be71b1-9245-4d1c-a5e1-8591b4c1a221\",\"ticket_id\":\"mapping_vendor_status.qloc.de\",\"priority\":\"mittel\",\"severity\":\"warning\",\"owner\":\"Marketing/IT/Datenschutz\",\"sla\":\"30 Tage\",\"title\":\"status.qloc.de\",\"evidence\":\"Sonstige\",\"action\":\"Zweck, Rolle, AVV/DPA, Region, Transfer und Consent-Kategorie bestätigen.\",\"acceptance_criteria\":[\"Dienst ist einer Servicekarte mit Anbieter, Zweck und Kategorie zugeordnet.\",\"Consent-Banner, Datenschutzhinweis und Anbieterregister verwenden dieselbe Bezeichnung.\",\"Re-Scan zeigt keine unbekannte oder ungeklärte Tracking-Auslösung.\"],\"links\":{\"guide\":\"https://saferpage.de/guides/drittanbieter-datenschutz-erklaeren\",\"evidence\":\"https://saferpage.de/anbieter/qloc.de\",\"rescan\":\"https://saferpage.de/scanbetrieb/qloc.de\",\"report\":\"https://saferpage.de/qloc.de\",\"fix_guides\":\"https://saferpage.de/fix-guides/qloc.de\"}}",
            "canonical_body_sha256": "3b82920ec7050b2495fa08447004bcee97b2d958b9c657581eb562e0ba0610af",
            "slack_payload": {
                "text": "[MITTEL] qloc.de: status.qloc.de",
                "blocks": [
                    {
                        "type": "section",
                        "text": {
                            "type": "mrkdwn",
                            "text": "*status.qloc.de*\nZweck, Rolle, AVV/DPA, Region, Transfer und Consent-Kategorie bestätigen."
                        }
                    },
                    {
                        "type": "context",
                        "elements": [
                            {
                                "type": "mrkdwn",
                                "text": "Verantwortlich: Marketing/IT/Datenschutz · Zielzeit: 30 Tage · https://saferpage.de/anbieter/qloc.de"
                            }
                        ]
                    }
                ]
            },
            "teams_payload": {
                "type": "message",
                "summary": "[MITTEL] qloc.de: status.qloc.de",
                "attachments": [
                    {
                        "contentType": "application/vnd.microsoft.card.adaptive",
                        "content": {
                            "type": "AdaptiveCard",
                            "version": "1.4",
                            "body": [
                                {
                                    "type": "TextBlock",
                                    "weight": "Bolder",
                                    "text": "status.qloc.de"
                                },
                                {
                                    "type": "TextBlock",
                                    "wrap": true,
                                    "text": "Zweck, Rolle, AVV/DPA, Region, Transfer und Consent-Kategorie bestätigen."
                                },
                                {
                                    "type": "FactSet",
                                    "facts": [
                                        {
                                            "title": "Domain",
                                            "value": "qloc.de"
                                        },
                                        {
                                            "title": "Verantwortlich",
                                            "value": "Marketing/IT/Datenschutz"
                                        },
                                        {
                                            "title": "Zielzeit",
                                            "value": "30 Tage"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                ]
            },
            "jira_payload": {
                "fields": {
                    "summary": "[qloc.de] status.qloc.de",
                    "description": "Zweck, Rolle, AVV/DPA, Region, Transfer und Consent-Kategorie bestätigen.\n\nNachweis: https://saferpage.de/anbieter/qloc.de\nHintergrundseite: https://saferpage.de/guides/drittanbieter-datenschutz-erklaeren\nRe-Scan: https://saferpage.de/scanbetrieb/qloc.de",
                    "labels": [
                        "saferpage",
                        "privacyops",
                        "remediation",
                        "mittel"
                    ],
                    "priority": {
                        "name": "Medium"
                    }
                }
            }
        },
        {
            "id": "sp-fix-7ac31e5dcd33ad7c353d4867",
            "ticket_id": "mapping_request_status.qloc.de",
            "channel": "jira_webhook",
            "priority": "mittel",
            "severity": "warning",
            "owner": "Marketing/IT/Datenschutz",
            "sla": "30 Tage",
            "summary": "[qloc.de] status.qloc.de",
            "description": "Request einem Dienst, Zweck und Consent-Zustand zuordnen oder blockieren.",
            "idempotency_key": "sp-fix-7ac31e5dcd33ad7c353d4867",
            "headers": {
                "X-SaferPage-Event": "operator.remediation.ticket_ready",
                "X-SaferPage-Schema": "operator-remediation-ticket-delivery.v1",
                "X-SaferPage-Idempotency-Key": "sp-fix-7ac31e5dcd33ad7c353d4867",
                "X-SaferPage-Body-SHA256": "ed335f6e682dfee315af3ebdaa293798c8a99339535b203e2ee2596a203053cb",
                "X-SaferPage-Signature": "sha256=<HMAC über canonical_webhook_body>"
            },
            "webhook_payload": {
                "event": "operator.remediation.ticket_ready",
                "domain": "qloc.de",
                "scan_id": "c8be71b1-9245-4d1c-a5e1-8591b4c1a221",
                "ticket_id": "mapping_request_status.qloc.de",
                "priority": "mittel",
                "severity": "warning",
                "owner": "Marketing/IT/Datenschutz",
                "sla": "30 Tage",
                "title": "status.qloc.de",
                "evidence": "other",
                "action": "Request einem Dienst, Zweck und Consent-Zustand zuordnen oder blockieren.",
                "acceptance_criteria": [
                    "Dienst ist einer Servicekarte mit Anbieter, Zweck und Kategorie zugeordnet.",
                    "Consent-Banner, Datenschutzhinweis und Anbieterregister verwenden dieselbe Bezeichnung.",
                    "Re-Scan zeigt keine unbekannte oder ungeklärte Tracking-Auslösung."
                ],
                "links": {
                    "guide": "https://saferpage.de/guides/servicekarte-und-anbieterinventar-aufbauen",
                    "evidence": "https://saferpage.de/anbieter/qloc.de",
                    "rescan": "https://saferpage.de/scanbetrieb/qloc.de",
                    "report": "https://saferpage.de/qloc.de",
                    "fix_guides": "https://saferpage.de/fix-guides/qloc.de"
                }
            },
            "canonical_webhook_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"qloc.de\",\"scan_id\":\"c8be71b1-9245-4d1c-a5e1-8591b4c1a221\",\"ticket_id\":\"mapping_request_status.qloc.de\",\"priority\":\"mittel\",\"severity\":\"warning\",\"owner\":\"Marketing/IT/Datenschutz\",\"sla\":\"30 Tage\",\"title\":\"status.qloc.de\",\"evidence\":\"other\",\"action\":\"Request einem Dienst, Zweck und Consent-Zustand zuordnen oder blockieren.\",\"acceptance_criteria\":[\"Dienst ist einer Servicekarte mit Anbieter, Zweck und Kategorie zugeordnet.\",\"Consent-Banner, Datenschutzhinweis und Anbieterregister verwenden dieselbe Bezeichnung.\",\"Re-Scan zeigt keine unbekannte oder ungeklärte Tracking-Auslösung.\"],\"links\":{\"guide\":\"https://saferpage.de/guides/servicekarte-und-anbieterinventar-aufbauen\",\"evidence\":\"https://saferpage.de/anbieter/qloc.de\",\"rescan\":\"https://saferpage.de/scanbetrieb/qloc.de\",\"report\":\"https://saferpage.de/qloc.de\",\"fix_guides\":\"https://saferpage.de/fix-guides/qloc.de\"}}",
            "canonical_body_sha256": "ed335f6e682dfee315af3ebdaa293798c8a99339535b203e2ee2596a203053cb",
            "slack_payload": {
                "text": "[MITTEL] qloc.de: status.qloc.de",
                "blocks": [
                    {
                        "type": "section",
                        "text": {
                            "type": "mrkdwn",
                            "text": "*status.qloc.de*\nRequest einem Dienst, Zweck und Consent-Zustand zuordnen oder blockieren."
                        }
                    },
                    {
                        "type": "context",
                        "elements": [
                            {
                                "type": "mrkdwn",
                                "text": "Verantwortlich: Marketing/IT/Datenschutz · Zielzeit: 30 Tage · https://saferpage.de/anbieter/qloc.de"
                            }
                        ]
                    }
                ]
            },
            "teams_payload": {
                "type": "message",
                "summary": "[MITTEL] qloc.de: status.qloc.de",
                "attachments": [
                    {
                        "contentType": "application/vnd.microsoft.card.adaptive",
                        "content": {
                            "type": "AdaptiveCard",
                            "version": "1.4",
                            "body": [
                                {
                                    "type": "TextBlock",
                                    "weight": "Bolder",
                                    "text": "status.qloc.de"
                                },
                                {
                                    "type": "TextBlock",
                                    "wrap": true,
                                    "text": "Request einem Dienst, Zweck und Consent-Zustand zuordnen oder blockieren."
                                },
                                {
                                    "type": "FactSet",
                                    "facts": [
                                        {
                                            "title": "Domain",
                                            "value": "qloc.de"
                                        },
                                        {
                                            "title": "Verantwortlich",
                                            "value": "Marketing/IT/Datenschutz"
                                        },
                                        {
                                            "title": "Zielzeit",
                                            "value": "30 Tage"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                ]
            },
            "jira_payload": {
                "fields": {
                    "summary": "[qloc.de] status.qloc.de",
                    "description": "Request einem Dienst, Zweck und Consent-Zustand zuordnen oder blockieren.\n\nNachweis: https://saferpage.de/anbieter/qloc.de\nHintergrundseite: https://saferpage.de/guides/servicekarte-und-anbieterinventar-aufbauen\nRe-Scan: https://saferpage.de/scanbetrieb/qloc.de",
                    "labels": [
                        "saferpage",
                        "privacyops",
                        "remediation",
                        "mittel"
                    ],
                    "priority": {
                        "name": "Medium"
                    }
                }
            }
        },
        {
            "id": "sp-fix-15db042905485c632dc6fa7c",
            "ticket_id": "mapping_vendor_umami.qloc.de",
            "channel": "jira_webhook",
            "priority": "mittel",
            "severity": "warning",
            "owner": "Marketing/IT/Datenschutz",
            "sla": "30 Tage",
            "summary": "[qloc.de] umami.qloc.de",
            "description": "Zweck, Rolle, AVV/DPA, Region, Transfer und Consent-Kategorie bestätigen.",
            "idempotency_key": "sp-fix-15db042905485c632dc6fa7c",
            "headers": {
                "X-SaferPage-Event": "operator.remediation.ticket_ready",
                "X-SaferPage-Schema": "operator-remediation-ticket-delivery.v1",
                "X-SaferPage-Idempotency-Key": "sp-fix-15db042905485c632dc6fa7c",
                "X-SaferPage-Body-SHA256": "3faa64750ae456a68aed66b7054698689d90897de247162d0a30a8befbfbf64f",
                "X-SaferPage-Signature": "sha256=<HMAC über canonical_webhook_body>"
            },
            "webhook_payload": {
                "event": "operator.remediation.ticket_ready",
                "domain": "qloc.de",
                "scan_id": "c8be71b1-9245-4d1c-a5e1-8591b4c1a221",
                "ticket_id": "mapping_vendor_umami.qloc.de",
                "priority": "mittel",
                "severity": "warning",
                "owner": "Marketing/IT/Datenschutz",
                "sla": "30 Tage",
                "title": "umami.qloc.de",
                "evidence": "Sonstige",
                "action": "Zweck, Rolle, AVV/DPA, Region, Transfer und Consent-Kategorie bestätigen.",
                "acceptance_criteria": [
                    "Dienst ist einer Servicekarte mit Anbieter, Zweck und Kategorie zugeordnet.",
                    "Consent-Banner, Datenschutzhinweis und Anbieterregister verwenden dieselbe Bezeichnung.",
                    "Re-Scan zeigt keine unbekannte oder ungeklärte Tracking-Auslösung."
                ],
                "links": {
                    "guide": "https://saferpage.de/guides/drittanbieter-datenschutz-erklaeren",
                    "evidence": "https://saferpage.de/anbieter/qloc.de",
                    "rescan": "https://saferpage.de/scanbetrieb/qloc.de",
                    "report": "https://saferpage.de/qloc.de",
                    "fix_guides": "https://saferpage.de/fix-guides/qloc.de"
                }
            },
            "canonical_webhook_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"qloc.de\",\"scan_id\":\"c8be71b1-9245-4d1c-a5e1-8591b4c1a221\",\"ticket_id\":\"mapping_vendor_umami.qloc.de\",\"priority\":\"mittel\",\"severity\":\"warning\",\"owner\":\"Marketing/IT/Datenschutz\",\"sla\":\"30 Tage\",\"title\":\"umami.qloc.de\",\"evidence\":\"Sonstige\",\"action\":\"Zweck, Rolle, AVV/DPA, Region, Transfer und Consent-Kategorie bestätigen.\",\"acceptance_criteria\":[\"Dienst ist einer Servicekarte mit Anbieter, Zweck und Kategorie zugeordnet.\",\"Consent-Banner, Datenschutzhinweis und Anbieterregister verwenden dieselbe Bezeichnung.\",\"Re-Scan zeigt keine unbekannte oder ungeklärte Tracking-Auslösung.\"],\"links\":{\"guide\":\"https://saferpage.de/guides/drittanbieter-datenschutz-erklaeren\",\"evidence\":\"https://saferpage.de/anbieter/qloc.de\",\"rescan\":\"https://saferpage.de/scanbetrieb/qloc.de\",\"report\":\"https://saferpage.de/qloc.de\",\"fix_guides\":\"https://saferpage.de/fix-guides/qloc.de\"}}",
            "canonical_body_sha256": "3faa64750ae456a68aed66b7054698689d90897de247162d0a30a8befbfbf64f",
            "slack_payload": {
                "text": "[MITTEL] qloc.de: umami.qloc.de",
                "blocks": [
                    {
                        "type": "section",
                        "text": {
                            "type": "mrkdwn",
                            "text": "*umami.qloc.de*\nZweck, Rolle, AVV/DPA, Region, Transfer und Consent-Kategorie bestätigen."
                        }
                    },
                    {
                        "type": "context",
                        "elements": [
                            {
                                "type": "mrkdwn",
                                "text": "Verantwortlich: Marketing/IT/Datenschutz · Zielzeit: 30 Tage · https://saferpage.de/anbieter/qloc.de"
                            }
                        ]
                    }
                ]
            },
            "teams_payload": {
                "type": "message",
                "summary": "[MITTEL] qloc.de: umami.qloc.de",
                "attachments": [
                    {
                        "contentType": "application/vnd.microsoft.card.adaptive",
                        "content": {
                            "type": "AdaptiveCard",
                            "version": "1.4",
                            "body": [
                                {
                                    "type": "TextBlock",
                                    "weight": "Bolder",
                                    "text": "umami.qloc.de"
                                },
                                {
                                    "type": "TextBlock",
                                    "wrap": true,
                                    "text": "Zweck, Rolle, AVV/DPA, Region, Transfer und Consent-Kategorie bestätigen."
                                },
                                {
                                    "type": "FactSet",
                                    "facts": [
                                        {
                                            "title": "Domain",
                                            "value": "qloc.de"
                                        },
                                        {
                                            "title": "Verantwortlich",
                                            "value": "Marketing/IT/Datenschutz"
                                        },
                                        {
                                            "title": "Zielzeit",
                                            "value": "30 Tage"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                ]
            },
            "jira_payload": {
                "fields": {
                    "summary": "[qloc.de] umami.qloc.de",
                    "description": "Zweck, Rolle, AVV/DPA, Region, Transfer und Consent-Kategorie bestätigen.\n\nNachweis: https://saferpage.de/anbieter/qloc.de\nHintergrundseite: https://saferpage.de/guides/drittanbieter-datenschutz-erklaeren\nRe-Scan: https://saferpage.de/scanbetrieb/qloc.de",
                    "labels": [
                        "saferpage",
                        "privacyops",
                        "remediation",
                        "mittel"
                    ],
                    "priority": {
                        "name": "Medium"
                    }
                }
            }
        },
        {
            "id": "sp-fix-66c24b8562c456346818b36f",
            "ticket_id": "mapping_request_umami.qloc.de",
            "channel": "jira_webhook",
            "priority": "mittel",
            "severity": "warning",
            "owner": "Marketing/IT/Datenschutz",
            "sla": "30 Tage",
            "summary": "[qloc.de] umami.qloc.de",
            "description": "Request einem Dienst, Zweck und Consent-Zustand zuordnen oder blockieren.",
            "idempotency_key": "sp-fix-66c24b8562c456346818b36f",
            "headers": {
                "X-SaferPage-Event": "operator.remediation.ticket_ready",
                "X-SaferPage-Schema": "operator-remediation-ticket-delivery.v1",
                "X-SaferPage-Idempotency-Key": "sp-fix-66c24b8562c456346818b36f",
                "X-SaferPage-Body-SHA256": "e4e44d19f1f5e77ca2c278550bd30df572c9350cefbb74724818234b884d3fd1",
                "X-SaferPage-Signature": "sha256=<HMAC über canonical_webhook_body>"
            },
            "webhook_payload": {
                "event": "operator.remediation.ticket_ready",
                "domain": "qloc.de",
                "scan_id": "c8be71b1-9245-4d1c-a5e1-8591b4c1a221",
                "ticket_id": "mapping_request_umami.qloc.de",
                "priority": "mittel",
                "severity": "warning",
                "owner": "Marketing/IT/Datenschutz",
                "sla": "30 Tage",
                "title": "umami.qloc.de",
                "evidence": "other",
                "action": "Request einem Dienst, Zweck und Consent-Zustand zuordnen oder blockieren.",
                "acceptance_criteria": [
                    "Dienst ist einer Servicekarte mit Anbieter, Zweck und Kategorie zugeordnet.",
                    "Consent-Banner, Datenschutzhinweis und Anbieterregister verwenden dieselbe Bezeichnung.",
                    "Re-Scan zeigt keine unbekannte oder ungeklärte Tracking-Auslösung."
                ],
                "links": {
                    "guide": "https://saferpage.de/guides/servicekarte-und-anbieterinventar-aufbauen",
                    "evidence": "https://saferpage.de/anbieter/qloc.de",
                    "rescan": "https://saferpage.de/scanbetrieb/qloc.de",
                    "report": "https://saferpage.de/qloc.de",
                    "fix_guides": "https://saferpage.de/fix-guides/qloc.de"
                }
            },
            "canonical_webhook_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"qloc.de\",\"scan_id\":\"c8be71b1-9245-4d1c-a5e1-8591b4c1a221\",\"ticket_id\":\"mapping_request_umami.qloc.de\",\"priority\":\"mittel\",\"severity\":\"warning\",\"owner\":\"Marketing/IT/Datenschutz\",\"sla\":\"30 Tage\",\"title\":\"umami.qloc.de\",\"evidence\":\"other\",\"action\":\"Request einem Dienst, Zweck und Consent-Zustand zuordnen oder blockieren.\",\"acceptance_criteria\":[\"Dienst ist einer Servicekarte mit Anbieter, Zweck und Kategorie zugeordnet.\",\"Consent-Banner, Datenschutzhinweis und Anbieterregister verwenden dieselbe Bezeichnung.\",\"Re-Scan zeigt keine unbekannte oder ungeklärte Tracking-Auslösung.\"],\"links\":{\"guide\":\"https://saferpage.de/guides/servicekarte-und-anbieterinventar-aufbauen\",\"evidence\":\"https://saferpage.de/anbieter/qloc.de\",\"rescan\":\"https://saferpage.de/scanbetrieb/qloc.de\",\"report\":\"https://saferpage.de/qloc.de\",\"fix_guides\":\"https://saferpage.de/fix-guides/qloc.de\"}}",
            "canonical_body_sha256": "e4e44d19f1f5e77ca2c278550bd30df572c9350cefbb74724818234b884d3fd1",
            "slack_payload": {
                "text": "[MITTEL] qloc.de: umami.qloc.de",
                "blocks": [
                    {
                        "type": "section",
                        "text": {
                            "type": "mrkdwn",
                            "text": "*umami.qloc.de*\nRequest einem Dienst, Zweck und Consent-Zustand zuordnen oder blockieren."
                        }
                    },
                    {
                        "type": "context",
                        "elements": [
                            {
                                "type": "mrkdwn",
                                "text": "Verantwortlich: Marketing/IT/Datenschutz · Zielzeit: 30 Tage · https://saferpage.de/anbieter/qloc.de"
                            }
                        ]
                    }
                ]
            },
            "teams_payload": {
                "type": "message",
                "summary": "[MITTEL] qloc.de: umami.qloc.de",
                "attachments": [
                    {
                        "contentType": "application/vnd.microsoft.card.adaptive",
                        "content": {
                            "type": "AdaptiveCard",
                            "version": "1.4",
                            "body": [
                                {
                                    "type": "TextBlock",
                                    "weight": "Bolder",
                                    "text": "umami.qloc.de"
                                },
                                {
                                    "type": "TextBlock",
                                    "wrap": true,
                                    "text": "Request einem Dienst, Zweck und Consent-Zustand zuordnen oder blockieren."
                                },
                                {
                                    "type": "FactSet",
                                    "facts": [
                                        {
                                            "title": "Domain",
                                            "value": "qloc.de"
                                        },
                                        {
                                            "title": "Verantwortlich",
                                            "value": "Marketing/IT/Datenschutz"
                                        },
                                        {
                                            "title": "Zielzeit",
                                            "value": "30 Tage"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                ]
            },
            "jira_payload": {
                "fields": {
                    "summary": "[qloc.de] umami.qloc.de",
                    "description": "Request einem Dienst, Zweck und Consent-Zustand zuordnen oder blockieren.\n\nNachweis: https://saferpage.de/anbieter/qloc.de\nHintergrundseite: https://saferpage.de/guides/servicekarte-und-anbieterinventar-aufbauen\nRe-Scan: https://saferpage.de/scanbetrieb/qloc.de",
                    "labels": [
                        "saferpage",
                        "privacyops",
                        "remediation",
                        "mittel"
                    ],
                    "priority": {
                        "name": "Medium"
                    }
                }
            }
        },
        {
            "id": "sp-fix-e7f8fd7225190e4200f75455",
            "ticket_id": "remediation_image_alt_missing",
            "channel": "jira_webhook",
            "priority": "niedrig",
            "severity": "info",
            "owner": "Website-Betrieb/Datenschutz",
            "sla": "quartalsweise",
            "summary": "[qloc.de] Bilder ohne Alternativtext",
            "description": "Inhaltliche Bilder mit alt-Text versehen; dekorative Bilder mit leerem alt oder aria-hidden kennzeichnen.",
            "idempotency_key": "sp-fix-e7f8fd7225190e4200f75455",
            "headers": {
                "X-SaferPage-Event": "operator.remediation.ticket_ready",
                "X-SaferPage-Schema": "operator-remediation-ticket-delivery.v1",
                "X-SaferPage-Idempotency-Key": "sp-fix-e7f8fd7225190e4200f75455",
                "X-SaferPage-Body-SHA256": "8faf222be957afa6a8f49d1995ef56aa37b5e570340f57372d83b75ddbbd35c9",
                "X-SaferPage-Signature": "sha256=<HMAC über canonical_webhook_body>"
            },
            "webhook_payload": {
                "event": "operator.remediation.ticket_ready",
                "domain": "qloc.de",
                "scan_id": "c8be71b1-9245-4d1c-a5e1-8591b4c1a221",
                "ticket_id": "remediation_image_alt_missing",
                "priority": "niedrig",
                "severity": "info",
                "owner": "Website-Betrieb/Datenschutz",
                "sla": "quartalsweise",
                "title": "Bilder ohne Alternativtext",
                "evidence": "",
                "action": "Inhaltliche Bilder mit alt-Text versehen; dekorative Bilder mit leerem alt oder aria-hidden kennzeichnen.",
                "acceptance_criteria": [
                    "Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.",
                    "Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.",
                    "Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe."
                ],
                "links": {
                    "guide": "https://saferpage.de/guides/barrierefreiheit-cookie-banner-formulare",
                    "evidence": "https://saferpage.de/befunde/qloc.de",
                    "rescan": "https://saferpage.de/scanbetrieb/qloc.de",
                    "report": "https://saferpage.de/qloc.de",
                    "fix_guides": "https://saferpage.de/fix-guides/qloc.de"
                }
            },
            "canonical_webhook_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"qloc.de\",\"scan_id\":\"c8be71b1-9245-4d1c-a5e1-8591b4c1a221\",\"ticket_id\":\"remediation_image_alt_missing\",\"priority\":\"niedrig\",\"severity\":\"info\",\"owner\":\"Website-Betrieb/Datenschutz\",\"sla\":\"quartalsweise\",\"title\":\"Bilder ohne Alternativtext\",\"evidence\":\"\",\"action\":\"Inhaltliche Bilder mit alt-Text versehen; dekorative Bilder mit leerem alt oder aria-hidden kennzeichnen.\",\"acceptance_criteria\":[\"Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.\",\"Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.\",\"Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe.\"],\"links\":{\"guide\":\"https://saferpage.de/guides/barrierefreiheit-cookie-banner-formulare\",\"evidence\":\"https://saferpage.de/befunde/qloc.de\",\"rescan\":\"https://saferpage.de/scanbetrieb/qloc.de\",\"report\":\"https://saferpage.de/qloc.de\",\"fix_guides\":\"https://saferpage.de/fix-guides/qloc.de\"}}",
            "canonical_body_sha256": "8faf222be957afa6a8f49d1995ef56aa37b5e570340f57372d83b75ddbbd35c9",
            "slack_payload": {
                "text": "[NIEDRIG] qloc.de: Bilder ohne Alternativtext",
                "blocks": [
                    {
                        "type": "section",
                        "text": {
                            "type": "mrkdwn",
                            "text": "*Bilder ohne Alternativtext*\nInhaltliche Bilder mit alt-Text versehen; dekorative Bilder mit leerem alt oder aria-hidden kennzeichnen."
                        }
                    },
                    {
                        "type": "context",
                        "elements": [
                            {
                                "type": "mrkdwn",
                                "text": "Verantwortlich: Website-Betrieb/Datenschutz · Zielzeit: quartalsweise · https://saferpage.de/befunde/qloc.de"
                            }
                        ]
                    }
                ]
            },
            "teams_payload": {
                "type": "message",
                "summary": "[NIEDRIG] qloc.de: Bilder ohne Alternativtext",
                "attachments": [
                    {
                        "contentType": "application/vnd.microsoft.card.adaptive",
                        "content": {
                            "type": "AdaptiveCard",
                            "version": "1.4",
                            "body": [
                                {
                                    "type": "TextBlock",
                                    "weight": "Bolder",
                                    "text": "Bilder ohne Alternativtext"
                                },
                                {
                                    "type": "TextBlock",
                                    "wrap": true,
                                    "text": "Inhaltliche Bilder mit alt-Text versehen; dekorative Bilder mit leerem alt oder aria-hidden kennzeichnen."
                                },
                                {
                                    "type": "FactSet",
                                    "facts": [
                                        {
                                            "title": "Domain",
                                            "value": "qloc.de"
                                        },
                                        {
                                            "title": "Verantwortlich",
                                            "value": "Website-Betrieb/Datenschutz"
                                        },
                                        {
                                            "title": "Zielzeit",
                                            "value": "quartalsweise"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                ]
            },
            "jira_payload": {
                "fields": {
                    "summary": "[qloc.de] Bilder ohne Alternativtext",
                    "description": "Inhaltliche Bilder mit alt-Text versehen; dekorative Bilder mit leerem alt oder aria-hidden kennzeichnen.\n\nNachweis: https://saferpage.de/befunde/qloc.de\nHintergrundseite: https://saferpage.de/guides/barrierefreiheit-cookie-banner-formulare\nRe-Scan: https://saferpage.de/scanbetrieb/qloc.de",
                    "labels": [
                        "saferpage",
                        "privacyops",
                        "remediation",
                        "niedrig"
                    ],
                    "priority": {
                        "name": "Low"
                    }
                }
            }
        },
        {
            "id": "sp-fix-29844853451655f9e452d24f",
            "ticket_id": "remediation_csp_missing_base_uri",
            "channel": "jira_webhook",
            "priority": "niedrig",
            "severity": "info",
            "owner": "Website-Betrieb/Datenschutz",
            "sla": "quartalsweise",
            "summary": "[qloc.de] CSP ohne base-uri",
            "description": "base-uri 'self' oder 'none' setzen, damit Base-Tag-Manipulation begrenzt wird.",
            "idempotency_key": "sp-fix-29844853451655f9e452d24f",
            "headers": {
                "X-SaferPage-Event": "operator.remediation.ticket_ready",
                "X-SaferPage-Schema": "operator-remediation-ticket-delivery.v1",
                "X-SaferPage-Idempotency-Key": "sp-fix-29844853451655f9e452d24f",
                "X-SaferPage-Body-SHA256": "11f7a3e0718fdb06135894428b3644f8edb712c1681a181df7b4a0ba01e77785",
                "X-SaferPage-Signature": "sha256=<HMAC über canonical_webhook_body>"
            },
            "webhook_payload": {
                "event": "operator.remediation.ticket_ready",
                "domain": "qloc.de",
                "scan_id": "c8be71b1-9245-4d1c-a5e1-8591b4c1a221",
                "ticket_id": "remediation_csp_missing_base_uri",
                "priority": "niedrig",
                "severity": "info",
                "owner": "Website-Betrieb/Datenschutz",
                "sla": "quartalsweise",
                "title": "CSP ohne base-uri",
                "evidence": "",
                "action": "base-uri 'self' oder 'none' setzen, damit Base-Tag-Manipulation begrenzt wird.",
                "acceptance_criteria": [
                    "Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.",
                    "Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.",
                    "Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe."
                ],
                "links": {
                    "guide": "https://saferpage.de/guides/security-header-setzen",
                    "evidence": "https://saferpage.de/befunde/qloc.de",
                    "rescan": "https://saferpage.de/scanbetrieb/qloc.de",
                    "report": "https://saferpage.de/qloc.de",
                    "fix_guides": "https://saferpage.de/fix-guides/qloc.de"
                }
            },
            "canonical_webhook_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"qloc.de\",\"scan_id\":\"c8be71b1-9245-4d1c-a5e1-8591b4c1a221\",\"ticket_id\":\"remediation_csp_missing_base_uri\",\"priority\":\"niedrig\",\"severity\":\"info\",\"owner\":\"Website-Betrieb/Datenschutz\",\"sla\":\"quartalsweise\",\"title\":\"CSP ohne base-uri\",\"evidence\":\"\",\"action\":\"base-uri 'self' oder 'none' setzen, damit Base-Tag-Manipulation begrenzt wird.\",\"acceptance_criteria\":[\"Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.\",\"Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.\",\"Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe.\"],\"links\":{\"guide\":\"https://saferpage.de/guides/security-header-setzen\",\"evidence\":\"https://saferpage.de/befunde/qloc.de\",\"rescan\":\"https://saferpage.de/scanbetrieb/qloc.de\",\"report\":\"https://saferpage.de/qloc.de\",\"fix_guides\":\"https://saferpage.de/fix-guides/qloc.de\"}}",
            "canonical_body_sha256": "11f7a3e0718fdb06135894428b3644f8edb712c1681a181df7b4a0ba01e77785",
            "slack_payload": {
                "text": "[NIEDRIG] qloc.de: CSP ohne base-uri",
                "blocks": [
                    {
                        "type": "section",
                        "text": {
                            "type": "mrkdwn",
                            "text": "*CSP ohne base-uri*\nbase-uri 'self' oder 'none' setzen, damit Base-Tag-Manipulation begrenzt wird."
                        }
                    },
                    {
                        "type": "context",
                        "elements": [
                            {
                                "type": "mrkdwn",
                                "text": "Verantwortlich: Website-Betrieb/Datenschutz · Zielzeit: quartalsweise · https://saferpage.de/befunde/qloc.de"
                            }
                        ]
                    }
                ]
            },
            "teams_payload": {
                "type": "message",
                "summary": "[NIEDRIG] qloc.de: CSP ohne base-uri",
                "attachments": [
                    {
                        "contentType": "application/vnd.microsoft.card.adaptive",
                        "content": {
                            "type": "AdaptiveCard",
                            "version": "1.4",
                            "body": [
                                {
                                    "type": "TextBlock",
                                    "weight": "Bolder",
                                    "text": "CSP ohne base-uri"
                                },
                                {
                                    "type": "TextBlock",
                                    "wrap": true,
                                    "text": "base-uri 'self' oder 'none' setzen, damit Base-Tag-Manipulation begrenzt wird."
                                },
                                {
                                    "type": "FactSet",
                                    "facts": [
                                        {
                                            "title": "Domain",
                                            "value": "qloc.de"
                                        },
                                        {
                                            "title": "Verantwortlich",
                                            "value": "Website-Betrieb/Datenschutz"
                                        },
                                        {
                                            "title": "Zielzeit",
                                            "value": "quartalsweise"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                ]
            },
            "jira_payload": {
                "fields": {
                    "summary": "[qloc.de] CSP ohne base-uri",
                    "description": "base-uri 'self' oder 'none' setzen, damit Base-Tag-Manipulation begrenzt wird.\n\nNachweis: https://saferpage.de/befunde/qloc.de\nHintergrundseite: https://saferpage.de/guides/security-header-setzen\nRe-Scan: https://saferpage.de/scanbetrieb/qloc.de",
                    "labels": [
                        "saferpage",
                        "privacyops",
                        "remediation",
                        "niedrig"
                    ],
                    "priority": {
                        "name": "Low"
                    }
                }
            }
        },
        {
            "id": "sp-fix-05d32a928721785fb0af2962",
            "ticket_id": "remediation_csp_missing_object_src",
            "channel": "jira_webhook",
            "priority": "niedrig",
            "severity": "info",
            "owner": "Website-Betrieb/Datenschutz",
            "sla": "quartalsweise",
            "summary": "[qloc.de] CSP ohne object-src",
            "description": "object-src 'none' setzen, wenn keine Plugins oder Objekte benötigt werden.",
            "idempotency_key": "sp-fix-05d32a928721785fb0af2962",
            "headers": {
                "X-SaferPage-Event": "operator.remediation.ticket_ready",
                "X-SaferPage-Schema": "operator-remediation-ticket-delivery.v1",
                "X-SaferPage-Idempotency-Key": "sp-fix-05d32a928721785fb0af2962",
                "X-SaferPage-Body-SHA256": "da3fdbc8685a149e6a0f970602450bc8f94b7f74c9c302694d7ca10344908a5b",
                "X-SaferPage-Signature": "sha256=<HMAC über canonical_webhook_body>"
            },
            "webhook_payload": {
                "event": "operator.remediation.ticket_ready",
                "domain": "qloc.de",
                "scan_id": "c8be71b1-9245-4d1c-a5e1-8591b4c1a221",
                "ticket_id": "remediation_csp_missing_object_src",
                "priority": "niedrig",
                "severity": "info",
                "owner": "Website-Betrieb/Datenschutz",
                "sla": "quartalsweise",
                "title": "CSP ohne object-src",
                "evidence": "",
                "action": "object-src 'none' setzen, wenn keine Plugins oder Objekte benötigt werden.",
                "acceptance_criteria": [
                    "Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.",
                    "Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.",
                    "Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe."
                ],
                "links": {
                    "guide": "https://saferpage.de/guides/security-header-setzen",
                    "evidence": "https://saferpage.de/befunde/qloc.de",
                    "rescan": "https://saferpage.de/scanbetrieb/qloc.de",
                    "report": "https://saferpage.de/qloc.de",
                    "fix_guides": "https://saferpage.de/fix-guides/qloc.de"
                }
            },
            "canonical_webhook_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"qloc.de\",\"scan_id\":\"c8be71b1-9245-4d1c-a5e1-8591b4c1a221\",\"ticket_id\":\"remediation_csp_missing_object_src\",\"priority\":\"niedrig\",\"severity\":\"info\",\"owner\":\"Website-Betrieb/Datenschutz\",\"sla\":\"quartalsweise\",\"title\":\"CSP ohne object-src\",\"evidence\":\"\",\"action\":\"object-src 'none' setzen, wenn keine Plugins oder Objekte benötigt werden.\",\"acceptance_criteria\":[\"Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.\",\"Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.\",\"Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe.\"],\"links\":{\"guide\":\"https://saferpage.de/guides/security-header-setzen\",\"evidence\":\"https://saferpage.de/befunde/qloc.de\",\"rescan\":\"https://saferpage.de/scanbetrieb/qloc.de\",\"report\":\"https://saferpage.de/qloc.de\",\"fix_guides\":\"https://saferpage.de/fix-guides/qloc.de\"}}",
            "canonical_body_sha256": "da3fdbc8685a149e6a0f970602450bc8f94b7f74c9c302694d7ca10344908a5b",
            "slack_payload": {
                "text": "[NIEDRIG] qloc.de: CSP ohne object-src",
                "blocks": [
                    {
                        "type": "section",
                        "text": {
                            "type": "mrkdwn",
                            "text": "*CSP ohne object-src*\nobject-src 'none' setzen, wenn keine Plugins oder Objekte benötigt werden."
                        }
                    },
                    {
                        "type": "context",
                        "elements": [
                            {
                                "type": "mrkdwn",
                                "text": "Verantwortlich: Website-Betrieb/Datenschutz · Zielzeit: quartalsweise · https://saferpage.de/befunde/qloc.de"
                            }
                        ]
                    }
                ]
            },
            "teams_payload": {
                "type": "message",
                "summary": "[NIEDRIG] qloc.de: CSP ohne object-src",
                "attachments": [
                    {
                        "contentType": "application/vnd.microsoft.card.adaptive",
                        "content": {
                            "type": "AdaptiveCard",
                            "version": "1.4",
                            "body": [
                                {
                                    "type": "TextBlock",
                                    "weight": "Bolder",
                                    "text": "CSP ohne object-src"
                                },
                                {
                                    "type": "TextBlock",
                                    "wrap": true,
                                    "text": "object-src 'none' setzen, wenn keine Plugins oder Objekte benötigt werden."
                                },
                                {
                                    "type": "FactSet",
                                    "facts": [
                                        {
                                            "title": "Domain",
                                            "value": "qloc.de"
                                        },
                                        {
                                            "title": "Verantwortlich",
                                            "value": "Website-Betrieb/Datenschutz"
                                        },
                                        {
                                            "title": "Zielzeit",
                                            "value": "quartalsweise"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                ]
            },
            "jira_payload": {
                "fields": {
                    "summary": "[qloc.de] CSP ohne object-src",
                    "description": "object-src 'none' setzen, wenn keine Plugins oder Objekte benötigt werden.\n\nNachweis: https://saferpage.de/befunde/qloc.de\nHintergrundseite: https://saferpage.de/guides/security-header-setzen\nRe-Scan: https://saferpage.de/scanbetrieb/qloc.de",
                    "labels": [
                        "saferpage",
                        "privacyops",
                        "remediation",
                        "niedrig"
                    ],
                    "priority": {
                        "name": "Low"
                    }
                }
            }
        },
        {
            "id": "sp-fix-c2a205136768db7a0e516619",
            "ticket_id": "remediation_missing_cross_origin_embedder_policy",
            "channel": "jira_webhook",
            "priority": "niedrig",
            "severity": "info",
            "owner": "Website-Betrieb/Datenschutz",
            "sla": "quartalsweise",
            "summary": "[qloc.de] Cross-Origin-Embedder-Policy fehlt",
            "description": "Header `cross-origin-embedder-policy` setzen und nach Deployment erneut prüfen.",
            "idempotency_key": "sp-fix-c2a205136768db7a0e516619",
            "headers": {
                "X-SaferPage-Event": "operator.remediation.ticket_ready",
                "X-SaferPage-Schema": "operator-remediation-ticket-delivery.v1",
                "X-SaferPage-Idempotency-Key": "sp-fix-c2a205136768db7a0e516619",
                "X-SaferPage-Body-SHA256": "eb29d4deaa921b069098c4b507370373f2993155ed91829487e92a667807f9b2",
                "X-SaferPage-Signature": "sha256=<HMAC über canonical_webhook_body>"
            },
            "webhook_payload": {
                "event": "operator.remediation.ticket_ready",
                "domain": "qloc.de",
                "scan_id": "c8be71b1-9245-4d1c-a5e1-8591b4c1a221",
                "ticket_id": "remediation_missing_cross_origin_embedder_policy",
                "priority": "niedrig",
                "severity": "info",
                "owner": "Website-Betrieb/Datenschutz",
                "sla": "quartalsweise",
                "title": "Cross-Origin-Embedder-Policy fehlt",
                "evidence": "",
                "action": "Header `cross-origin-embedder-policy` setzen und nach Deployment erneut prüfen.",
                "acceptance_criteria": [
                    "Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.",
                    "Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.",
                    "Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe."
                ],
                "links": {
                    "guide": "https://saferpage.de/guides/security-header-setzen",
                    "evidence": "https://saferpage.de/befunde/qloc.de",
                    "rescan": "https://saferpage.de/scanbetrieb/qloc.de",
                    "report": "https://saferpage.de/qloc.de",
                    "fix_guides": "https://saferpage.de/fix-guides/qloc.de"
                }
            },
            "canonical_webhook_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"qloc.de\",\"scan_id\":\"c8be71b1-9245-4d1c-a5e1-8591b4c1a221\",\"ticket_id\":\"remediation_missing_cross_origin_embedder_policy\",\"priority\":\"niedrig\",\"severity\":\"info\",\"owner\":\"Website-Betrieb/Datenschutz\",\"sla\":\"quartalsweise\",\"title\":\"Cross-Origin-Embedder-Policy fehlt\",\"evidence\":\"\",\"action\":\"Header `cross-origin-embedder-policy` setzen und nach Deployment erneut prüfen.\",\"acceptance_criteria\":[\"Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.\",\"Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.\",\"Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe.\"],\"links\":{\"guide\":\"https://saferpage.de/guides/security-header-setzen\",\"evidence\":\"https://saferpage.de/befunde/qloc.de\",\"rescan\":\"https://saferpage.de/scanbetrieb/qloc.de\",\"report\":\"https://saferpage.de/qloc.de\",\"fix_guides\":\"https://saferpage.de/fix-guides/qloc.de\"}}",
            "canonical_body_sha256": "eb29d4deaa921b069098c4b507370373f2993155ed91829487e92a667807f9b2",
            "slack_payload": {
                "text": "[NIEDRIG] qloc.de: Cross-Origin-Embedder-Policy fehlt",
                "blocks": [
                    {
                        "type": "section",
                        "text": {
                            "type": "mrkdwn",
                            "text": "*Cross-Origin-Embedder-Policy fehlt*\nHeader `cross-origin-embedder-policy` setzen und nach Deployment erneut prüfen."
                        }
                    },
                    {
                        "type": "context",
                        "elements": [
                            {
                                "type": "mrkdwn",
                                "text": "Verantwortlich: Website-Betrieb/Datenschutz · Zielzeit: quartalsweise · https://saferpage.de/befunde/qloc.de"
                            }
                        ]
                    }
                ]
            },
            "teams_payload": {
                "type": "message",
                "summary": "[NIEDRIG] qloc.de: Cross-Origin-Embedder-Policy fehlt",
                "attachments": [
                    {
                        "contentType": "application/vnd.microsoft.card.adaptive",
                        "content": {
                            "type": "AdaptiveCard",
                            "version": "1.4",
                            "body": [
                                {
                                    "type": "TextBlock",
                                    "weight": "Bolder",
                                    "text": "Cross-Origin-Embedder-Policy fehlt"
                                },
                                {
                                    "type": "TextBlock",
                                    "wrap": true,
                                    "text": "Header `cross-origin-embedder-policy` setzen und nach Deployment erneut prüfen."
                                },
                                {
                                    "type": "FactSet",
                                    "facts": [
                                        {
                                            "title": "Domain",
                                            "value": "qloc.de"
                                        },
                                        {
                                            "title": "Verantwortlich",
                                            "value": "Website-Betrieb/Datenschutz"
                                        },
                                        {
                                            "title": "Zielzeit",
                                            "value": "quartalsweise"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                ]
            },
            "jira_payload": {
                "fields": {
                    "summary": "[qloc.de] Cross-Origin-Embedder-Policy fehlt",
                    "description": "Header `cross-origin-embedder-policy` setzen und nach Deployment erneut prüfen.\n\nNachweis: https://saferpage.de/befunde/qloc.de\nHintergrundseite: https://saferpage.de/guides/security-header-setzen\nRe-Scan: https://saferpage.de/scanbetrieb/qloc.de",
                    "labels": [
                        "saferpage",
                        "privacyops",
                        "remediation",
                        "niedrig"
                    ],
                    "priority": {
                        "name": "Low"
                    }
                }
            }
        },
        {
            "id": "sp-fix-263ce91d156a1621cf500cc0",
            "ticket_id": "remediation_missing_cross_origin_opener_policy",
            "channel": "jira_webhook",
            "priority": "niedrig",
            "severity": "info",
            "owner": "Website-Betrieb/Datenschutz",
            "sla": "quartalsweise",
            "summary": "[qloc.de] Cross-Origin-Opener-Policy fehlt",
            "description": "Header `cross-origin-opener-policy` setzen und nach Deployment erneut prüfen.",
            "idempotency_key": "sp-fix-263ce91d156a1621cf500cc0",
            "headers": {
                "X-SaferPage-Event": "operator.remediation.ticket_ready",
                "X-SaferPage-Schema": "operator-remediation-ticket-delivery.v1",
                "X-SaferPage-Idempotency-Key": "sp-fix-263ce91d156a1621cf500cc0",
                "X-SaferPage-Body-SHA256": "acc41eb6a88f81359c9c4ccedc3965d2b6f36f3d80655635eb3976bc039a748a",
                "X-SaferPage-Signature": "sha256=<HMAC über canonical_webhook_body>"
            },
            "webhook_payload": {
                "event": "operator.remediation.ticket_ready",
                "domain": "qloc.de",
                "scan_id": "c8be71b1-9245-4d1c-a5e1-8591b4c1a221",
                "ticket_id": "remediation_missing_cross_origin_opener_policy",
                "priority": "niedrig",
                "severity": "info",
                "owner": "Website-Betrieb/Datenschutz",
                "sla": "quartalsweise",
                "title": "Cross-Origin-Opener-Policy fehlt",
                "evidence": "",
                "action": "Header `cross-origin-opener-policy` setzen und nach Deployment erneut prüfen.",
                "acceptance_criteria": [
                    "Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.",
                    "Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.",
                    "Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe."
                ],
                "links": {
                    "guide": "https://saferpage.de/guides/security-header-setzen",
                    "evidence": "https://saferpage.de/befunde/qloc.de",
                    "rescan": "https://saferpage.de/scanbetrieb/qloc.de",
                    "report": "https://saferpage.de/qloc.de",
                    "fix_guides": "https://saferpage.de/fix-guides/qloc.de"
                }
            },
            "canonical_webhook_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"qloc.de\",\"scan_id\":\"c8be71b1-9245-4d1c-a5e1-8591b4c1a221\",\"ticket_id\":\"remediation_missing_cross_origin_opener_policy\",\"priority\":\"niedrig\",\"severity\":\"info\",\"owner\":\"Website-Betrieb/Datenschutz\",\"sla\":\"quartalsweise\",\"title\":\"Cross-Origin-Opener-Policy fehlt\",\"evidence\":\"\",\"action\":\"Header `cross-origin-opener-policy` setzen und nach Deployment erneut prüfen.\",\"acceptance_criteria\":[\"Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.\",\"Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.\",\"Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe.\"],\"links\":{\"guide\":\"https://saferpage.de/guides/security-header-setzen\",\"evidence\":\"https://saferpage.de/befunde/qloc.de\",\"rescan\":\"https://saferpage.de/scanbetrieb/qloc.de\",\"report\":\"https://saferpage.de/qloc.de\",\"fix_guides\":\"https://saferpage.de/fix-guides/qloc.de\"}}",
            "canonical_body_sha256": "acc41eb6a88f81359c9c4ccedc3965d2b6f36f3d80655635eb3976bc039a748a",
            "slack_payload": {
                "text": "[NIEDRIG] qloc.de: Cross-Origin-Opener-Policy fehlt",
                "blocks": [
                    {
                        "type": "section",
                        "text": {
                            "type": "mrkdwn",
                            "text": "*Cross-Origin-Opener-Policy fehlt*\nHeader `cross-origin-opener-policy` setzen und nach Deployment erneut prüfen."
                        }
                    },
                    {
                        "type": "context",
                        "elements": [
                            {
                                "type": "mrkdwn",
                                "text": "Verantwortlich: Website-Betrieb/Datenschutz · Zielzeit: quartalsweise · https://saferpage.de/befunde/qloc.de"
                            }
                        ]
                    }
                ]
            },
            "teams_payload": {
                "type": "message",
                "summary": "[NIEDRIG] qloc.de: Cross-Origin-Opener-Policy fehlt",
                "attachments": [
                    {
                        "contentType": "application/vnd.microsoft.card.adaptive",
                        "content": {
                            "type": "AdaptiveCard",
                            "version": "1.4",
                            "body": [
                                {
                                    "type": "TextBlock",
                                    "weight": "Bolder",
                                    "text": "Cross-Origin-Opener-Policy fehlt"
                                },
                                {
                                    "type": "TextBlock",
                                    "wrap": true,
                                    "text": "Header `cross-origin-opener-policy` setzen und nach Deployment erneut prüfen."
                                },
                                {
                                    "type": "FactSet",
                                    "facts": [
                                        {
                                            "title": "Domain",
                                            "value": "qloc.de"
                                        },
                                        {
                                            "title": "Verantwortlich",
                                            "value": "Website-Betrieb/Datenschutz"
                                        },
                                        {
                                            "title": "Zielzeit",
                                            "value": "quartalsweise"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                ]
            },
            "jira_payload": {
                "fields": {
                    "summary": "[qloc.de] Cross-Origin-Opener-Policy fehlt",
                    "description": "Header `cross-origin-opener-policy` setzen und nach Deployment erneut prüfen.\n\nNachweis: https://saferpage.de/befunde/qloc.de\nHintergrundseite: https://saferpage.de/guides/security-header-setzen\nRe-Scan: https://saferpage.de/scanbetrieb/qloc.de",
                    "labels": [
                        "saferpage",
                        "privacyops",
                        "remediation",
                        "niedrig"
                    ],
                    "priority": {
                        "name": "Low"
                    }
                }
            }
        },
        {
            "id": "sp-fix-2b914ad640040cbaca6cbf9c",
            "ticket_id": "remediation_missing_cross_origin_resource_policy",
            "channel": "jira_webhook",
            "priority": "niedrig",
            "severity": "info",
            "owner": "Website-Betrieb/Datenschutz",
            "sla": "quartalsweise",
            "summary": "[qloc.de] Cross-Origin-Resource-Policy fehlt",
            "description": "Header `cross-origin-resource-policy` setzen und nach Deployment erneut prüfen.",
            "idempotency_key": "sp-fix-2b914ad640040cbaca6cbf9c",
            "headers": {
                "X-SaferPage-Event": "operator.remediation.ticket_ready",
                "X-SaferPage-Schema": "operator-remediation-ticket-delivery.v1",
                "X-SaferPage-Idempotency-Key": "sp-fix-2b914ad640040cbaca6cbf9c",
                "X-SaferPage-Body-SHA256": "6e401cb5a5966342213709ef0701bca8f7d202beb10f3684da8cf6816591a680",
                "X-SaferPage-Signature": "sha256=<HMAC über canonical_webhook_body>"
            },
            "webhook_payload": {
                "event": "operator.remediation.ticket_ready",
                "domain": "qloc.de",
                "scan_id": "c8be71b1-9245-4d1c-a5e1-8591b4c1a221",
                "ticket_id": "remediation_missing_cross_origin_resource_policy",
                "priority": "niedrig",
                "severity": "info",
                "owner": "Website-Betrieb/Datenschutz",
                "sla": "quartalsweise",
                "title": "Cross-Origin-Resource-Policy fehlt",
                "evidence": "",
                "action": "Header `cross-origin-resource-policy` setzen und nach Deployment erneut prüfen.",
                "acceptance_criteria": [
                    "Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.",
                    "Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.",
                    "Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe."
                ],
                "links": {
                    "guide": "https://saferpage.de/guides/security-header-setzen",
                    "evidence": "https://saferpage.de/befunde/qloc.de",
                    "rescan": "https://saferpage.de/scanbetrieb/qloc.de",
                    "report": "https://saferpage.de/qloc.de",
                    "fix_guides": "https://saferpage.de/fix-guides/qloc.de"
                }
            },
            "canonical_webhook_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"qloc.de\",\"scan_id\":\"c8be71b1-9245-4d1c-a5e1-8591b4c1a221\",\"ticket_id\":\"remediation_missing_cross_origin_resource_policy\",\"priority\":\"niedrig\",\"severity\":\"info\",\"owner\":\"Website-Betrieb/Datenschutz\",\"sla\":\"quartalsweise\",\"title\":\"Cross-Origin-Resource-Policy fehlt\",\"evidence\":\"\",\"action\":\"Header `cross-origin-resource-policy` setzen und nach Deployment erneut prüfen.\",\"acceptance_criteria\":[\"Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.\",\"Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.\",\"Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe.\"],\"links\":{\"guide\":\"https://saferpage.de/guides/security-header-setzen\",\"evidence\":\"https://saferpage.de/befunde/qloc.de\",\"rescan\":\"https://saferpage.de/scanbetrieb/qloc.de\",\"report\":\"https://saferpage.de/qloc.de\",\"fix_guides\":\"https://saferpage.de/fix-guides/qloc.de\"}}",
            "canonical_body_sha256": "6e401cb5a5966342213709ef0701bca8f7d202beb10f3684da8cf6816591a680",
            "slack_payload": {
                "text": "[NIEDRIG] qloc.de: Cross-Origin-Resource-Policy fehlt",
                "blocks": [
                    {
                        "type": "section",
                        "text": {
                            "type": "mrkdwn",
                            "text": "*Cross-Origin-Resource-Policy fehlt*\nHeader `cross-origin-resource-policy` setzen und nach Deployment erneut prüfen."
                        }
                    },
                    {
                        "type": "context",
                        "elements": [
                            {
                                "type": "mrkdwn",
                                "text": "Verantwortlich: Website-Betrieb/Datenschutz · Zielzeit: quartalsweise · https://saferpage.de/befunde/qloc.de"
                            }
                        ]
                    }
                ]
            },
            "teams_payload": {
                "type": "message",
                "summary": "[NIEDRIG] qloc.de: Cross-Origin-Resource-Policy fehlt",
                "attachments": [
                    {
                        "contentType": "application/vnd.microsoft.card.adaptive",
                        "content": {
                            "type": "AdaptiveCard",
                            "version": "1.4",
                            "body": [
                                {
                                    "type": "TextBlock",
                                    "weight": "Bolder",
                                    "text": "Cross-Origin-Resource-Policy fehlt"
                                },
                                {
                                    "type": "TextBlock",
                                    "wrap": true,
                                    "text": "Header `cross-origin-resource-policy` setzen und nach Deployment erneut prüfen."
                                },
                                {
                                    "type": "FactSet",
                                    "facts": [
                                        {
                                            "title": "Domain",
                                            "value": "qloc.de"
                                        },
                                        {
                                            "title": "Verantwortlich",
                                            "value": "Website-Betrieb/Datenschutz"
                                        },
                                        {
                                            "title": "Zielzeit",
                                            "value": "quartalsweise"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                ]
            },
            "jira_payload": {
                "fields": {
                    "summary": "[qloc.de] Cross-Origin-Resource-Policy fehlt",
                    "description": "Header `cross-origin-resource-policy` setzen und nach Deployment erneut prüfen.\n\nNachweis: https://saferpage.de/befunde/qloc.de\nHintergrundseite: https://saferpage.de/guides/security-header-setzen\nRe-Scan: https://saferpage.de/scanbetrieb/qloc.de",
                    "labels": [
                        "saferpage",
                        "privacyops",
                        "remediation",
                        "niedrig"
                    ],
                    "priority": {
                        "name": "Low"
                    }
                }
            }
        },
        {
            "id": "sp-fix-216716da35871dfb94c11e9f",
            "ticket_id": "remediation_external_script_without_sri",
            "channel": "jira_webhook",
            "priority": "niedrig",
            "severity": "info",
            "owner": "Website-Betrieb/Datenschutz",
            "sla": "quartalsweise",
            "summary": "[qloc.de] Externe Skripte ohne Subresource Integrity",
            "description": "Für statische CDN-Skripte `integrity` und passend `crossorigin` setzen oder Skripte kontrolliert lokal ausliefern.",
            "idempotency_key": "sp-fix-216716da35871dfb94c11e9f",
            "headers": {
                "X-SaferPage-Event": "operator.remediation.ticket_ready",
                "X-SaferPage-Schema": "operator-remediation-ticket-delivery.v1",
                "X-SaferPage-Idempotency-Key": "sp-fix-216716da35871dfb94c11e9f",
                "X-SaferPage-Body-SHA256": "5706bb49c45812e478ddae2269317841394629f6f24dc5b3ad9a6d8b57c19ba7",
                "X-SaferPage-Signature": "sha256=<HMAC über canonical_webhook_body>"
            },
            "webhook_payload": {
                "event": "operator.remediation.ticket_ready",
                "domain": "qloc.de",
                "scan_id": "c8be71b1-9245-4d1c-a5e1-8591b4c1a221",
                "ticket_id": "remediation_external_script_without_sri",
                "priority": "niedrig",
                "severity": "info",
                "owner": "Website-Betrieb/Datenschutz",
                "sla": "quartalsweise",
                "title": "Externe Skripte ohne Subresource Integrity",
                "evidence": "",
                "action": "Für statische CDN-Skripte `integrity` und passend `crossorigin` setzen oder Skripte kontrolliert lokal ausliefern.",
                "acceptance_criteria": [
                    "Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.",
                    "Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.",
                    "Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe."
                ],
                "links": {
                    "guide": "https://saferpage.de/guides/externe-skripte-und-sri-absichern",
                    "evidence": "https://saferpage.de/befunde/qloc.de",
                    "rescan": "https://saferpage.de/scanbetrieb/qloc.de",
                    "report": "https://saferpage.de/qloc.de",
                    "fix_guides": "https://saferpage.de/fix-guides/qloc.de"
                }
            },
            "canonical_webhook_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"qloc.de\",\"scan_id\":\"c8be71b1-9245-4d1c-a5e1-8591b4c1a221\",\"ticket_id\":\"remediation_external_script_without_sri\",\"priority\":\"niedrig\",\"severity\":\"info\",\"owner\":\"Website-Betrieb/Datenschutz\",\"sla\":\"quartalsweise\",\"title\":\"Externe Skripte ohne Subresource Integrity\",\"evidence\":\"\",\"action\":\"Für statische CDN-Skripte `integrity` und passend `crossorigin` setzen oder Skripte kontrolliert lokal ausliefern.\",\"acceptance_criteria\":[\"Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.\",\"Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.\",\"Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe.\"],\"links\":{\"guide\":\"https://saferpage.de/guides/externe-skripte-und-sri-absichern\",\"evidence\":\"https://saferpage.de/befunde/qloc.de\",\"rescan\":\"https://saferpage.de/scanbetrieb/qloc.de\",\"report\":\"https://saferpage.de/qloc.de\",\"fix_guides\":\"https://saferpage.de/fix-guides/qloc.de\"}}",
            "canonical_body_sha256": "5706bb49c45812e478ddae2269317841394629f6f24dc5b3ad9a6d8b57c19ba7",
            "slack_payload": {
                "text": "[NIEDRIG] qloc.de: Externe Skripte ohne Subresource Integrity",
                "blocks": [
                    {
                        "type": "section",
                        "text": {
                            "type": "mrkdwn",
                            "text": "*Externe Skripte ohne Subresource Integrity*\nFür statische CDN-Skripte `integrity` und passend `crossorigin` setzen oder Skripte kontrolliert lokal ausliefern."
                        }
                    },
                    {
                        "type": "context",
                        "elements": [
                            {
                                "type": "mrkdwn",
                                "text": "Verantwortlich: Website-Betrieb/Datenschutz · Zielzeit: quartalsweise · https://saferpage.de/befunde/qloc.de"
                            }
                        ]
                    }
                ]
            },
            "teams_payload": {
                "type": "message",
                "summary": "[NIEDRIG] qloc.de: Externe Skripte ohne Subresource Integrity",
                "attachments": [
                    {
                        "contentType": "application/vnd.microsoft.card.adaptive",
                        "content": {
                            "type": "AdaptiveCard",
                            "version": "1.4",
                            "body": [
                                {
                                    "type": "TextBlock",
                                    "weight": "Bolder",
                                    "text": "Externe Skripte ohne Subresource Integrity"
                                },
                                {
                                    "type": "TextBlock",
                                    "wrap": true,
                                    "text": "Für statische CDN-Skripte `integrity` und passend `crossorigin` setzen oder Skripte kontrolliert lokal ausliefern."
                                },
                                {
                                    "type": "FactSet",
                                    "facts": [
                                        {
                                            "title": "Domain",
                                            "value": "qloc.de"
                                        },
                                        {
                                            "title": "Verantwortlich",
                                            "value": "Website-Betrieb/Datenschutz"
                                        },
                                        {
                                            "title": "Zielzeit",
                                            "value": "quartalsweise"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                ]
            },
            "jira_payload": {
                "fields": {
                    "summary": "[qloc.de] Externe Skripte ohne Subresource Integrity",
                    "description": "Für statische CDN-Skripte `integrity` und passend `crossorigin` setzen oder Skripte kontrolliert lokal ausliefern.\n\nNachweis: https://saferpage.de/befunde/qloc.de\nHintergrundseite: https://saferpage.de/guides/externe-skripte-und-sri-absichern\nRe-Scan: https://saferpage.de/scanbetrieb/qloc.de",
                    "labels": [
                        "saferpage",
                        "privacyops",
                        "remediation",
                        "niedrig"
                    ],
                    "priority": {
                        "name": "Low"
                    }
                }
            }
        },
        {
            "id": "sp-fix-d296fc22359efa891b12b245",
            "ticket_id": "remediation_large_html_response",
            "channel": "jira_webhook",
            "priority": "niedrig",
            "severity": "info",
            "owner": "Website-Betrieb/Datenschutz",
            "sla": "quartalsweise",
            "summary": "[qloc.de] HTML-Antwort ist groß",
            "description": "HTML reduzieren, kritische Inhalte priorisieren und unnötige Inline-Daten vermeiden.",
            "idempotency_key": "sp-fix-d296fc22359efa891b12b245",
            "headers": {
                "X-SaferPage-Event": "operator.remediation.ticket_ready",
                "X-SaferPage-Schema": "operator-remediation-ticket-delivery.v1",
                "X-SaferPage-Idempotency-Key": "sp-fix-d296fc22359efa891b12b245",
                "X-SaferPage-Body-SHA256": "cda9fd1b87834e03a7ef16fec604e988eff977e22400ee757fa727797afb5533",
                "X-SaferPage-Signature": "sha256=<HMAC über canonical_webhook_body>"
            },
            "webhook_payload": {
                "event": "operator.remediation.ticket_ready",
                "domain": "qloc.de",
                "scan_id": "c8be71b1-9245-4d1c-a5e1-8591b4c1a221",
                "ticket_id": "remediation_large_html_response",
                "priority": "niedrig",
                "severity": "info",
                "owner": "Website-Betrieb/Datenschutz",
                "sla": "quartalsweise",
                "title": "HTML-Antwort ist groß",
                "evidence": "",
                "action": "HTML reduzieren, kritische Inhalte priorisieren und unnötige Inline-Daten vermeiden.",
                "acceptance_criteria": [
                    "Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.",
                    "Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.",
                    "Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe."
                ],
                "links": {
                    "guide": "https://saferpage.de/guides/performance-und-mobile-usability-verbessern",
                    "evidence": "https://saferpage.de/befunde/qloc.de",
                    "rescan": "https://saferpage.de/scanbetrieb/qloc.de",
                    "report": "https://saferpage.de/qloc.de",
                    "fix_guides": "https://saferpage.de/fix-guides/qloc.de"
                }
            },
            "canonical_webhook_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"qloc.de\",\"scan_id\":\"c8be71b1-9245-4d1c-a5e1-8591b4c1a221\",\"ticket_id\":\"remediation_large_html_response\",\"priority\":\"niedrig\",\"severity\":\"info\",\"owner\":\"Website-Betrieb/Datenschutz\",\"sla\":\"quartalsweise\",\"title\":\"HTML-Antwort ist groß\",\"evidence\":\"\",\"action\":\"HTML reduzieren, kritische Inhalte priorisieren und unnötige Inline-Daten vermeiden.\",\"acceptance_criteria\":[\"Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.\",\"Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.\",\"Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe.\"],\"links\":{\"guide\":\"https://saferpage.de/guides/performance-und-mobile-usability-verbessern\",\"evidence\":\"https://saferpage.de/befunde/qloc.de\",\"rescan\":\"https://saferpage.de/scanbetrieb/qloc.de\",\"report\":\"https://saferpage.de/qloc.de\",\"fix_guides\":\"https://saferpage.de/fix-guides/qloc.de\"}}",
            "canonical_body_sha256": "cda9fd1b87834e03a7ef16fec604e988eff977e22400ee757fa727797afb5533",
            "slack_payload": {
                "text": "[NIEDRIG] qloc.de: HTML-Antwort ist groß",
                "blocks": [
                    {
                        "type": "section",
                        "text": {
                            "type": "mrkdwn",
                            "text": "*HTML-Antwort ist groß*\nHTML reduzieren, kritische Inhalte priorisieren und unnötige Inline-Daten vermeiden."
                        }
                    },
                    {
                        "type": "context",
                        "elements": [
                            {
                                "type": "mrkdwn",
                                "text": "Verantwortlich: Website-Betrieb/Datenschutz · Zielzeit: quartalsweise · https://saferpage.de/befunde/qloc.de"
                            }
                        ]
                    }
                ]
            },
            "teams_payload": {
                "type": "message",
                "summary": "[NIEDRIG] qloc.de: HTML-Antwort ist groß",
                "attachments": [
                    {
                        "contentType": "application/vnd.microsoft.card.adaptive",
                        "content": {
                            "type": "AdaptiveCard",
                            "version": "1.4",
                            "body": [
                                {
                                    "type": "TextBlock",
                                    "weight": "Bolder",
                                    "text": "HTML-Antwort ist groß"
                                },
                                {
                                    "type": "TextBlock",
                                    "wrap": true,
                                    "text": "HTML reduzieren, kritische Inhalte priorisieren und unnötige Inline-Daten vermeiden."
                                },
                                {
                                    "type": "FactSet",
                                    "facts": [
                                        {
                                            "title": "Domain",
                                            "value": "qloc.de"
                                        },
                                        {
                                            "title": "Verantwortlich",
                                            "value": "Website-Betrieb/Datenschutz"
                                        },
                                        {
                                            "title": "Zielzeit",
                                            "value": "quartalsweise"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                ]
            },
            "jira_payload": {
                "fields": {
                    "summary": "[qloc.de] HTML-Antwort ist groß",
                    "description": "HTML reduzieren, kritische Inhalte priorisieren und unnötige Inline-Daten vermeiden.\n\nNachweis: https://saferpage.de/befunde/qloc.de\nHintergrundseite: https://saferpage.de/guides/performance-und-mobile-usability-verbessern\nRe-Scan: https://saferpage.de/scanbetrieb/qloc.de",
                    "labels": [
                        "saferpage",
                        "privacyops",
                        "remediation",
                        "niedrig"
                    ],
                    "priority": {
                        "name": "Low"
                    }
                }
            }
        },
        {
            "id": "sp-fix-b6bfbc468c425153c7732a20",
            "ticket_id": "remediation_compression_missing",
            "channel": "jira_webhook",
            "priority": "niedrig",
            "severity": "info",
            "owner": "Website-Betrieb/Datenschutz",
            "sla": "quartalsweise",
            "summary": "[qloc.de] Komprimierung nicht erkannt",
            "description": "Brotli oder gzip für HTML/CSS/JS aktivieren.",
            "idempotency_key": "sp-fix-b6bfbc468c425153c7732a20",
            "headers": {
                "X-SaferPage-Event": "operator.remediation.ticket_ready",
                "X-SaferPage-Schema": "operator-remediation-ticket-delivery.v1",
                "X-SaferPage-Idempotency-Key": "sp-fix-b6bfbc468c425153c7732a20",
                "X-SaferPage-Body-SHA256": "0d017c27b599842b6c67f278715439414dde41cb82c3636d75f5780647183e18",
                "X-SaferPage-Signature": "sha256=<HMAC über canonical_webhook_body>"
            },
            "webhook_payload": {
                "event": "operator.remediation.ticket_ready",
                "domain": "qloc.de",
                "scan_id": "c8be71b1-9245-4d1c-a5e1-8591b4c1a221",
                "ticket_id": "remediation_compression_missing",
                "priority": "niedrig",
                "severity": "info",
                "owner": "Website-Betrieb/Datenschutz",
                "sla": "quartalsweise",
                "title": "Komprimierung nicht erkannt",
                "evidence": "",
                "action": "Brotli oder gzip für HTML/CSS/JS aktivieren.",
                "acceptance_criteria": [
                    "Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.",
                    "Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.",
                    "Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe."
                ],
                "links": {
                    "guide": "https://saferpage.de/guides/performance-und-mobile-usability-verbessern",
                    "evidence": "https://saferpage.de/befunde/qloc.de",
                    "rescan": "https://saferpage.de/scanbetrieb/qloc.de",
                    "report": "https://saferpage.de/qloc.de",
                    "fix_guides": "https://saferpage.de/fix-guides/qloc.de"
                }
            },
            "canonical_webhook_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"qloc.de\",\"scan_id\":\"c8be71b1-9245-4d1c-a5e1-8591b4c1a221\",\"ticket_id\":\"remediation_compression_missing\",\"priority\":\"niedrig\",\"severity\":\"info\",\"owner\":\"Website-Betrieb/Datenschutz\",\"sla\":\"quartalsweise\",\"title\":\"Komprimierung nicht erkannt\",\"evidence\":\"\",\"action\":\"Brotli oder gzip für HTML/CSS/JS aktivieren.\",\"acceptance_criteria\":[\"Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.\",\"Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.\",\"Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe.\"],\"links\":{\"guide\":\"https://saferpage.de/guides/performance-und-mobile-usability-verbessern\",\"evidence\":\"https://saferpage.de/befunde/qloc.de\",\"rescan\":\"https://saferpage.de/scanbetrieb/qloc.de\",\"report\":\"https://saferpage.de/qloc.de\",\"fix_guides\":\"https://saferpage.de/fix-guides/qloc.de\"}}",
            "canonical_body_sha256": "0d017c27b599842b6c67f278715439414dde41cb82c3636d75f5780647183e18",
            "slack_payload": {
                "text": "[NIEDRIG] qloc.de: Komprimierung nicht erkannt",
                "blocks": [
                    {
                        "type": "section",
                        "text": {
                            "type": "mrkdwn",
                            "text": "*Komprimierung nicht erkannt*\nBrotli oder gzip für HTML/CSS/JS aktivieren."
                        }
                    },
                    {
                        "type": "context",
                        "elements": [
                            {
                                "type": "mrkdwn",
                                "text": "Verantwortlich: Website-Betrieb/Datenschutz · Zielzeit: quartalsweise · https://saferpage.de/befunde/qloc.de"
                            }
                        ]
                    }
                ]
            },
            "teams_payload": {
                "type": "message",
                "summary": "[NIEDRIG] qloc.de: Komprimierung nicht erkannt",
                "attachments": [
                    {
                        "contentType": "application/vnd.microsoft.card.adaptive",
                        "content": {
                            "type": "AdaptiveCard",
                            "version": "1.4",
                            "body": [
                                {
                                    "type": "TextBlock",
                                    "weight": "Bolder",
                                    "text": "Komprimierung nicht erkannt"
                                },
                                {
                                    "type": "TextBlock",
                                    "wrap": true,
                                    "text": "Brotli oder gzip für HTML/CSS/JS aktivieren."
                                },
                                {
                                    "type": "FactSet",
                                    "facts": [
                                        {
                                            "title": "Domain",
                                            "value": "qloc.de"
                                        },
                                        {
                                            "title": "Verantwortlich",
                                            "value": "Website-Betrieb/Datenschutz"
                                        },
                                        {
                                            "title": "Zielzeit",
                                            "value": "quartalsweise"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                ]
            },
            "jira_payload": {
                "fields": {
                    "summary": "[qloc.de] Komprimierung nicht erkannt",
                    "description": "Brotli oder gzip für HTML/CSS/JS aktivieren.\n\nNachweis: https://saferpage.de/befunde/qloc.de\nHintergrundseite: https://saferpage.de/guides/performance-und-mobile-usability-verbessern\nRe-Scan: https://saferpage.de/scanbetrieb/qloc.de",
                    "labels": [
                        "saferpage",
                        "privacyops",
                        "remediation",
                        "niedrig"
                    ],
                    "priority": {
                        "name": "Low"
                    }
                }
            }
        },
        {
            "id": "sp-fix-b0373931acb3f577413cc9f7",
            "ticket_id": "remediation_privacy_policy_update_date_missing",
            "channel": "jira_webhook",
            "priority": "niedrig",
            "severity": "info",
            "owner": "Website-Betrieb/Datenschutz",
            "sla": "quartalsweise",
            "summary": "[qloc.de] Stand der Datenschutzerklärung nicht klar erkennbar",
            "description": "Betreiber sollten ein gut sichtbares Stand- oder Aktualisierungsdatum ergänzen und die Erklärung nach technischen Änderungen prüfen.",
            "idempotency_key": "sp-fix-b0373931acb3f577413cc9f7",
            "headers": {
                "X-SaferPage-Event": "operator.remediation.ticket_ready",
                "X-SaferPage-Schema": "operator-remediation-ticket-delivery.v1",
                "X-SaferPage-Idempotency-Key": "sp-fix-b0373931acb3f577413cc9f7",
                "X-SaferPage-Body-SHA256": "bc4d1a322d6f0df5100175b8ef67fe58c299b01e6360f3c4477c8df534c69ba9",
                "X-SaferPage-Signature": "sha256=<HMAC über canonical_webhook_body>"
            },
            "webhook_payload": {
                "event": "operator.remediation.ticket_ready",
                "domain": "qloc.de",
                "scan_id": "c8be71b1-9245-4d1c-a5e1-8591b4c1a221",
                "ticket_id": "remediation_privacy_policy_update_date_missing",
                "priority": "niedrig",
                "severity": "info",
                "owner": "Website-Betrieb/Datenschutz",
                "sla": "quartalsweise",
                "title": "Stand der Datenschutzerklärung nicht klar erkennbar",
                "evidence": "",
                "action": "Betreiber sollten ein gut sichtbares Stand- oder Aktualisierungsdatum ergänzen und die Erklärung nach technischen Änderungen prüfen.",
                "acceptance_criteria": [
                    "Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.",
                    "Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.",
                    "Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe."
                ],
                "links": {
                    "guide": "https://saferpage.de/guides/datenschutzerklaerung-verbessern",
                    "evidence": "https://saferpage.de/befunde/qloc.de",
                    "rescan": "https://saferpage.de/scanbetrieb/qloc.de",
                    "report": "https://saferpage.de/qloc.de",
                    "fix_guides": "https://saferpage.de/fix-guides/qloc.de"
                }
            },
            "canonical_webhook_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"qloc.de\",\"scan_id\":\"c8be71b1-9245-4d1c-a5e1-8591b4c1a221\",\"ticket_id\":\"remediation_privacy_policy_update_date_missing\",\"priority\":\"niedrig\",\"severity\":\"info\",\"owner\":\"Website-Betrieb/Datenschutz\",\"sla\":\"quartalsweise\",\"title\":\"Stand der Datenschutzerklärung nicht klar erkennbar\",\"evidence\":\"\",\"action\":\"Betreiber sollten ein gut sichtbares Stand- oder Aktualisierungsdatum ergänzen und die Erklärung nach technischen Änderungen prüfen.\",\"acceptance_criteria\":[\"Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.\",\"Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.\",\"Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe.\"],\"links\":{\"guide\":\"https://saferpage.de/guides/datenschutzerklaerung-verbessern\",\"evidence\":\"https://saferpage.de/befunde/qloc.de\",\"rescan\":\"https://saferpage.de/scanbetrieb/qloc.de\",\"report\":\"https://saferpage.de/qloc.de\",\"fix_guides\":\"https://saferpage.de/fix-guides/qloc.de\"}}",
            "canonical_body_sha256": "bc4d1a322d6f0df5100175b8ef67fe58c299b01e6360f3c4477c8df534c69ba9",
            "slack_payload": {
                "text": "[NIEDRIG] qloc.de: Stand der Datenschutzerklärung nicht klar erkennbar",
                "blocks": [
                    {
                        "type": "section",
                        "text": {
                            "type": "mrkdwn",
                            "text": "*Stand der Datenschutzerklärung nicht klar erkennbar*\nBetreiber sollten ein gut sichtbares Stand- oder Aktualisierungsdatum ergänzen und die Erklärung nach technischen Änderungen prüfen."
                        }
                    },
                    {
                        "type": "context",
                        "elements": [
                            {
                                "type": "mrkdwn",
                                "text": "Verantwortlich: Website-Betrieb/Datenschutz · Zielzeit: quartalsweise · https://saferpage.de/befunde/qloc.de"
                            }
                        ]
                    }
                ]
            },
            "teams_payload": {
                "type": "message",
                "summary": "[NIEDRIG] qloc.de: Stand der Datenschutzerklärung nicht klar erkennbar",
                "attachments": [
                    {
                        "contentType": "application/vnd.microsoft.card.adaptive",
                        "content": {
                            "type": "AdaptiveCard",
                            "version": "1.4",
                            "body": [
                                {
                                    "type": "TextBlock",
                                    "weight": "Bolder",
                                    "text": "Stand der Datenschutzerklärung nicht klar erkennbar"
                                },
                                {
                                    "type": "TextBlock",
                                    "wrap": true,
                                    "text": "Betreiber sollten ein gut sichtbares Stand- oder Aktualisierungsdatum ergänzen und die Erklärung nach technischen Änderungen prüfen."
                                },
                                {
                                    "type": "FactSet",
                                    "facts": [
                                        {
                                            "title": "Domain",
                                            "value": "qloc.de"
                                        },
                                        {
                                            "title": "Verantwortlich",
                                            "value": "Website-Betrieb/Datenschutz"
                                        },
                                        {
                                            "title": "Zielzeit",
                                            "value": "quartalsweise"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                ]
            },
            "jira_payload": {
                "fields": {
                    "summary": "[qloc.de] Stand der Datenschutzerklärung nicht klar erkennbar",
                    "description": "Betreiber sollten ein gut sichtbares Stand- oder Aktualisierungsdatum ergänzen und die Erklärung nach technischen Änderungen prüfen.\n\nNachweis: https://saferpage.de/befunde/qloc.de\nHintergrundseite: https://saferpage.de/guides/datenschutzerklaerung-verbessern\nRe-Scan: https://saferpage.de/scanbetrieb/qloc.de",
                    "labels": [
                        "saferpage",
                        "privacyops",
                        "remediation",
                        "niedrig"
                    ],
                    "priority": {
                        "name": "Low"
                    }
                }
            }
        },
        {
            "id": "sp-fix-565ef7fc15ca7afbb82912ff",
            "ticket_id": "remediation_browser_keystroke_listener_signals",
            "channel": "jira_webhook",
            "priority": "niedrig",
            "severity": "info",
            "owner": "Website-Betrieb/Datenschutz",
            "sla": "quartalsweise",
            "summary": "[qloc.de] Viele Tastatur-/Eingabe-Listener im Browser erkannt",
            "description": "Prüfen, ob Eingaben für Analytics, Session-Replay oder Debugging erfasst werden; sensible Felder konsequent ausschließen.",
            "idempotency_key": "sp-fix-565ef7fc15ca7afbb82912ff",
            "headers": {
                "X-SaferPage-Event": "operator.remediation.ticket_ready",
                "X-SaferPage-Schema": "operator-remediation-ticket-delivery.v1",
                "X-SaferPage-Idempotency-Key": "sp-fix-565ef7fc15ca7afbb82912ff",
                "X-SaferPage-Body-SHA256": "f33e65edb551d7f19db469673326a44163eb4a4e2040d7160de4c11aaa1d5d91",
                "X-SaferPage-Signature": "sha256=<HMAC über canonical_webhook_body>"
            },
            "webhook_payload": {
                "event": "operator.remediation.ticket_ready",
                "domain": "qloc.de",
                "scan_id": "c8be71b1-9245-4d1c-a5e1-8591b4c1a221",
                "ticket_id": "remediation_browser_keystroke_listener_signals",
                "priority": "niedrig",
                "severity": "info",
                "owner": "Website-Betrieb/Datenschutz",
                "sla": "quartalsweise",
                "title": "Viele Tastatur-/Eingabe-Listener im Browser erkannt",
                "evidence": "",
                "action": "Prüfen, ob Eingaben für Analytics, Session-Replay oder Debugging erfasst werden; sensible Felder konsequent ausschließen.",
                "acceptance_criteria": [
                    "Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.",
                    "Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.",
                    "Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe."
                ],
                "links": {
                    "guide": "https://saferpage.de/guides/session-replay-und-fingerprinting-pruefen",
                    "evidence": "https://saferpage.de/befunde/qloc.de",
                    "rescan": "https://saferpage.de/scanbetrieb/qloc.de",
                    "report": "https://saferpage.de/qloc.de",
                    "fix_guides": "https://saferpage.de/fix-guides/qloc.de"
                }
            },
            "canonical_webhook_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"qloc.de\",\"scan_id\":\"c8be71b1-9245-4d1c-a5e1-8591b4c1a221\",\"ticket_id\":\"remediation_browser_keystroke_listener_signals\",\"priority\":\"niedrig\",\"severity\":\"info\",\"owner\":\"Website-Betrieb/Datenschutz\",\"sla\":\"quartalsweise\",\"title\":\"Viele Tastatur-/Eingabe-Listener im Browser erkannt\",\"evidence\":\"\",\"action\":\"Prüfen, ob Eingaben für Analytics, Session-Replay oder Debugging erfasst werden; sensible Felder konsequent ausschließen.\",\"acceptance_criteria\":[\"Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.\",\"Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.\",\"Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe.\"],\"links\":{\"guide\":\"https://saferpage.de/guides/session-replay-und-fingerprinting-pruefen\",\"evidence\":\"https://saferpage.de/befunde/qloc.de\",\"rescan\":\"https://saferpage.de/scanbetrieb/qloc.de\",\"report\":\"https://saferpage.de/qloc.de\",\"fix_guides\":\"https://saferpage.de/fix-guides/qloc.de\"}}",
            "canonical_body_sha256": "f33e65edb551d7f19db469673326a44163eb4a4e2040d7160de4c11aaa1d5d91",
            "slack_payload": {
                "text": "[NIEDRIG] qloc.de: Viele Tastatur-/Eingabe-Listener im Browser erkannt",
                "blocks": [
                    {
                        "type": "section",
                        "text": {
                            "type": "mrkdwn",
                            "text": "*Viele Tastatur-/Eingabe-Listener im Browser erkannt*\nPrüfen, ob Eingaben für Analytics, Session-Replay oder Debugging erfasst werden; sensible Felder konsequent ausschließen."
                        }
                    },
                    {
                        "type": "context",
                        "elements": [
                            {
                                "type": "mrkdwn",
                                "text": "Verantwortlich: Website-Betrieb/Datenschutz · Zielzeit: quartalsweise · https://saferpage.de/befunde/qloc.de"
                            }
                        ]
                    }
                ]
            },
            "teams_payload": {
                "type": "message",
                "summary": "[NIEDRIG] qloc.de: Viele Tastatur-/Eingabe-Listener im Browser erkannt",
                "attachments": [
                    {
                        "contentType": "application/vnd.microsoft.card.adaptive",
                        "content": {
                            "type": "AdaptiveCard",
                            "version": "1.4",
                            "body": [
                                {
                                    "type": "TextBlock",
                                    "weight": "Bolder",
                                    "text": "Viele Tastatur-/Eingabe-Listener im Browser erkannt"
                                },
                                {
                                    "type": "TextBlock",
                                    "wrap": true,
                                    "text": "Prüfen, ob Eingaben für Analytics, Session-Replay oder Debugging erfasst werden; sensible Felder konsequent ausschließen."
                                },
                                {
                                    "type": "FactSet",
                                    "facts": [
                                        {
                                            "title": "Domain",
                                            "value": "qloc.de"
                                        },
                                        {
                                            "title": "Verantwortlich",
                                            "value": "Website-Betrieb/Datenschutz"
                                        },
                                        {
                                            "title": "Zielzeit",
                                            "value": "quartalsweise"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                ]
            },
            "jira_payload": {
                "fields": {
                    "summary": "[qloc.de] Viele Tastatur-/Eingabe-Listener im Browser erkannt",
                    "description": "Prüfen, ob Eingaben für Analytics, Session-Replay oder Debugging erfasst werden; sensible Felder konsequent ausschließen.\n\nNachweis: https://saferpage.de/befunde/qloc.de\nHintergrundseite: https://saferpage.de/guides/session-replay-und-fingerprinting-pruefen\nRe-Scan: https://saferpage.de/scanbetrieb/qloc.de",
                    "labels": [
                        "saferpage",
                        "privacyops",
                        "remediation",
                        "niedrig"
                    ],
                    "priority": {
                        "name": "Low"
                    }
                }
            }
        }
    ],
    "links": {
        "fix_guides": "https://saferpage.de/fix-guides/qloc.de",
        "tickets_json": "https://saferpage.de/fix-guides/qloc.de/tickets-json",
        "json": "https://saferpage.de/fix-guides/qloc.de/tickets-delivery-json",
        "csv": "https://saferpage.de/fix-guides/qloc.de/tickets-delivery-csv"
    },
    "disclaimer": "Payload-Vorlagen ohne aktive Zustellung und ohne echte Secrets. Betreiber müssen Zielsysteme, Authentifizierung, HMAC-Secret, Projekte, Empfänger und Freigaben selbst konfigurieren."
}
