{
    "schema": "https://saferpage.de/schemas/portfolio-scan-dispatch.v1",
    "generated_at": "2026-11-13T00:57:50+00:00",
    "summary": "Dispatch-Paket für geplante SaferPage-Scans mit Webhook-, Slack-, Teams- und Jira-Payloads, Idempotency-Key und Retry-Policy.",
    "metrics": {
        "dispatch_count": 1,
        "urgent_count": 0,
        "normal_count": 1,
        "source_schedule_count": 1
    },
    "delivery_channels": [
        {
            "id": "webhook",
            "label": "Webhook",
            "purpose": "Automatisierte Orchestrierung oder Queue-Import.",
            "payload_field": "webhook_payload"
        },
        {
            "id": "slack",
            "label": "Slack",
            "purpose": "PrivacyOps-Kanal mit Report- und ScanOps-Buttons.",
            "payload_field": "slack_payload"
        },
        {
            "id": "teams",
            "label": "Microsoft Teams",
            "purpose": "Betreiber- oder Datenschutz-Team benachrichtigen.",
            "payload_field": "teams_payload"
        },
        {
            "id": "jira",
            "label": "Jira",
            "purpose": "Nachweisposition für Scanfreigabe, Umsetzung und Re-Scan anlegen.",
            "payload_field": "jira_issue"
        }
    ],
    "dispatches": [
        {
            "id": "sp-dispatch-3b6ac7427bb5916db7bfa2ac",
            "host": "saferpage.de",
            "priority": "mittel",
            "owner": "Website-Betrieb",
            "channel_group": "scheduled_privacyops",
            "next_scan_at": "2026-08-14T01:13:10+00:00",
            "due_now": true,
            "reason": "neuer Check, älter als 14 Tage, jetzt fällig",
            "retry_policy": {
                "max_attempts": 3,
                "backoff_seconds": [
                    60,
                    300,
                    900
                ],
                "dead_letter_queue": "privacyops.scan_dispatch.failed"
            },
            "webhook_payload": {
                "event": "saferpage.portfolio.scan_dispatch",
                "idempotency_key": "sp-dispatch-3b6ac7427bb5916db7bfa2ac",
                "host": "saferpage.de",
                "priority": "mittel",
                "owner": "Website-Betrieb",
                "next_scan_at": "2026-08-14T01:13:10+00:00",
                "frequency": "monthly",
                "score": 88,
                "status": "new",
                "reason": "neuer Check, älter als 14 Tage, jetzt fällig",
                "links": {
                    "report": "https://saferpage.de/saferpage.de",
                    "scanops": "https://saferpage.de/scanbetrieb/saferpage.de",
                    "schedule": "https://saferpage.de/portfolio/schedule-json",
                    "audit": "https://saferpage.de/portfolio/audit-json"
                }
            },
            "slack_payload": {
                "text": "SaferPage Scan einplanen: saferpage.de",
                "blocks": [
                    {
                        "type": "section",
                        "text": {
                            "type": "mrkdwn",
                            "text": "*SaferPage Scan einplanen: saferpage.de*\nneuer Check, älter als 14 Tage, jetzt fällig · nächster Scan 2026-08-14T01:13:10+00:00 · Priorität mittel"
                        }
                    },
                    {
                        "type": "actions",
                        "elements": [
                            {
                                "type": "button",
                                "text": {
                                    "type": "plain_text",
                                    "text": "Report"
                                },
                                "url": "https://saferpage.de/saferpage.de"
                            },
                            {
                                "type": "button",
                                "text": {
                                    "type": "plain_text",
                                    "text": "ScanOps"
                                },
                                "url": "https://saferpage.de/scanbetrieb/saferpage.de"
                            }
                        ]
                    }
                ]
            },
            "teams_payload": {
                "type": "message",
                "title": "SaferPage Scan einplanen: saferpage.de",
                "text": "neuer Check, älter als 14 Tage, jetzt fällig · nächster Scan 2026-08-14T01:13:10+00:00 · Priorität mittel",
                "potentialAction": [
                    {
                        "@type": "OpenUri",
                        "name": "Report öffnen",
                        "targets": [
                            {
                                "os": "default",
                                "uri": "https://saferpage.de/saferpage.de"
                            }
                        ]
                    },
                    {
                        "@type": "OpenUri",
                        "name": "ScanOps öffnen",
                        "targets": [
                            {
                                "os": "default",
                                "uri": "https://saferpage.de/scanbetrieb/saferpage.de"
                            }
                        ]
                    }
                ]
            },
            "jira_issue": {
                "project_key": "PRIV",
                "issue_type": "Task",
                "summary": "SaferPage Scan einplanen: saferpage.de",
                "description": "neuer Check, älter als 14 Tage, jetzt fällig · nächster Scan 2026-08-14T01:13:10+00:00 · Priorität mittel\n\nReport: https://saferpage.de/saferpage.de\nScanOps: https://saferpage.de/scanbetrieb/saferpage.de",
                "labels": [
                    "saferpage",
                    "scheduled-scan",
                    "mittel"
                ],
                "external_id": "sp-dispatch-3b6ac7427bb5916db7bfa2ac"
            }
        }
    ],
    "links": {
        "portfolio": "https://saferpage.de/portfolio",
        "json": "https://saferpage.de/portfolio/dispatch-json",
        "csv": "https://saferpage.de/portfolio/dispatch-csv",
        "schedule_json": "https://saferpage.de/portfolio/schedule-json",
        "audit_json": "https://saferpage.de/portfolio/audit-json",
        "monitoring": "https://saferpage.de/monitoring"
    },
    "sources": [
        {
            "title": "Osano Compliance Check",
            "url": "https://www.osano.com/features/compliance-check",
            "note": "Orientierung für kontinuierliche Compliance-Nachweise und Audit Trails."
        },
        {
            "title": "OneTrust Cookie Consent",
            "url": "https://www.onetrust.com/products/cookie-consent/",
            "note": "Orientierung für geplante Scans und Domain-Workflows."
        }
    ],
    "disclaimer": "Payloads sind Vorlagen für Betreiber-Workflows. Secrets, Ziel-URLs, Projekt-Keys und Berechtigungen müssen außerhalb von SaferPage konfiguriert werden.",
    "cache": {
        "status": "miss",
        "ttl_seconds": 180
    }
}
