{
    "schema": "https://saferpage.de/schemas/portfolio-digest-delivery.v1",
    "generated_at": "2026-06-08T22:35:02+00:00",
    "summary": "Delivery-Paket fuer wiederkehrende Portfolio-Digests mit Empfaengergruppen, E-Mail-/SendGrid-/Webhook-Payloads, Versandfenster, Idempotency-Key und Retry-Policy.",
    "metrics": {
        "recipient_group_count": 3,
        "delivery_job_count": 3,
        "recipient_count": 4
    },
    "recipient_groups": [
        {
            "id": "management",
            "label": "Management",
            "recipients": [
                "management@example.invalid"
            ],
            "cadence": "weekly",
            "language": "de-DE",
            "purpose": "Kurzlage zu Risiken, Fortschritt und Entscheidungen."
        },
        {
            "id": "privacyops",
            "label": "PrivacyOps",
            "recipients": [
                "privacyops@example.invalid",
                "datenschutz@example.invalid"
            ],
            "cadence": "weekly",
            "language": "de-DE",
            "purpose": "Nachverfolgung von Audit-Trail, Dispatches und Scanplan."
        },
        {
            "id": "webbetrieb",
            "label": "Webbetrieb",
            "recipients": [
                "webbetrieb@example.invalid"
            ],
            "cadence": "weekly",
            "language": "de-DE",
            "purpose": "Technische Umsetzung, Re-Scans und Deployment-Abgleich."
        }
    ],
    "delivery_jobs": [
        {
            "id": "sp-digest-management-792c78013bb2950d2da0",
            "recipient_group": "management",
            "label": "Management",
            "cadence": "weekly",
            "language": "de-DE",
            "send_window": {
                "weekday": "monday",
                "time_local": "09:00",
                "timezone": "Europe/Berlin"
            },
            "to": [
                "management@example.invalid"
            ],
            "subject": "SaferPage Portfolio-Digest: 495 Domains, 489 woechentliche Scans, 489 Dispatches",
            "preheader": "489 kritische Domain(s) brauchen priorisierte PrivacyOps-Nacharbeit.",
            "idempotency_key": "sp-digest-management-792c78013bb2950d2da0",
            "retry_policy": {
                "max_attempts": 3,
                "backoff_seconds": [
                    300,
                    1800,
                    7200
                ],
                "dead_letter_queue": "privacyops.digest_delivery.failed"
            },
            "email_payload": {
                "from": "SaferPage Reports <reports@saferpage.de>",
                "to": [
                    "management@example.invalid"
                ],
                "subject": "SaferPage Portfolio-Digest: 495 Domains, 489 woechentliche Scans, 489 Dispatches",
                "text_markdown": "# SaferPage Portfolio-Digest: 495 Domains, 489 woechentliche Scans, 489 Dispatches\n\n489 kritische Domain(s) brauchen priorisierte PrivacyOps-Nacharbeit.\n\n## Kennzahlen\n- Domains im Scanplan: 495\n- Woechentliche Scans: 489\n- Naechste 7 Tage: 489\n- Kritische Domains: 489\n- Dispatches: 489 (489 dringend)\n\n## Naechste Aktionen\n- **Programm-Owner/Datenschutz** (hoch): Kritische woechentliche Scans pruefen, Owner bestaetigen und Dispatch-Paket in Tickets uebernehmen. https://saferpage.de/portfolio/dispatch-json\n- **Website-Betrieb** (mittel): Naechste Batch-Termine aus dem Scanplan gegen Deployment- und Consent-Aenderungen abgleichen. https://saferpage.de/portfolio/schedule-json\n- **Audit/Compliance** (mittel): Audit-Trail exportieren und Scan-IDs mit internen Freigaben oder Release-Tickets verbinden. https://saferpage.de/portfolio/audit-json\n\n## Naechste geplante Scans\n- anrufer.info: 2026-06-14T01:22:43+00:00, hoch, Score kritisch\n- otto.de: 2026-06-14T02:14:43+00:00, hoch, Score kritisch, neuer Check\n- destatis.de: 2026-06-14T02:26:32+00:00, hoch, Score kritisch, neuer Check\n- bsi.bund.de: 2026-06-14T02:28:21+00:00, hoch, Score kritisch\n- bundesnetzagentur.de: 2026-06-14T02:28:23+00:00, hoch, Score kritisch\n- breitbandmessung.de: 2026-06-14T02:28:31+00:00, hoch, Score kritisch, neuer Check\n\n## Dispatch-Vorschau\n- anrufer.info: urgent_privacyops, 2026-06-14T01:22:43+00:00, sp-dispatch-9014c87dabc610affabc5d89\n- otto.de: urgent_privacyops, 2026-06-14T02:14:43+00:00, sp-dispatch-ed34ecc22bb4e19c0ae143eb\n- destatis.de: urgent_privacyops, 2026-06-14T02:26:32+00:00, sp-dispatch-d580fe63db952887e6ee5811\n- bsi.bund.de: urgent_privacyops, 2026-06-14T02:28:21+00:00, sp-dispatch-9abc8d39ce733f7e4d79fb5f\n- bundesnetzagentur.de: urgent_privacyops, 2026-06-14T02:28:23+00:00, sp-dispatch-68de3287d89594b6dda3a492",
                "headers": {
                    "X-SaferPage-Idempotency-Key": "sp-digest-management-792c78013bb2950d2da0",
                    "X-SaferPage-Digest-Schema": "portfolio-scan-digest.v1"
                },
                "attachments": [
                    {
                        "filename": "saferpage-portfolio-digest.md",
                        "content_type": "text/markdown",
                        "url": "https://saferpage.de/portfolio/digest-md"
                    },
                    {
                        "filename": "saferpage-portfolio-digest.json",
                        "content_type": "application/json",
                        "url": "https://saferpage.de/portfolio/digest-json"
                    }
                ]
            },
            "sendgrid_payload": {
                "personalizations": [
                    {
                        "to": [
                            {
                                "email": "management@example.invalid"
                            }
                        ],
                        "custom_args": {
                            "idempotency_key": "sp-digest-management-792c78013bb2950d2da0"
                        }
                    }
                ],
                "from": {
                    "email": "reports@saferpage.de",
                    "name": "SaferPage Reports"
                },
                "subject": "SaferPage Portfolio-Digest: 495 Domains, 489 woechentliche Scans, 489 Dispatches",
                "content": [
                    {
                        "type": "text/markdown",
                        "value": "# SaferPage Portfolio-Digest: 495 Domains, 489 woechentliche Scans, 489 Dispatches\n\n489 kritische Domain(s) brauchen priorisierte PrivacyOps-Nacharbeit.\n\n## Kennzahlen\n- Domains im Scanplan: 495\n- Woechentliche Scans: 489\n- Naechste 7 Tage: 489\n- Kritische Domains: 489\n- Dispatches: 489 (489 dringend)\n\n## Naechste Aktionen\n- **Programm-Owner/Datenschutz** (hoch): Kritische woechentliche Scans pruefen, Owner bestaetigen und Dispatch-Paket in Tickets uebernehmen. https://saferpage.de/portfolio/dispatch-json\n- **Website-Betrieb** (mittel): Naechste Batch-Termine aus dem Scanplan gegen Deployment- und Consent-Aenderungen abgleichen. https://saferpage.de/portfolio/schedule-json\n- **Audit/Compliance** (mittel): Audit-Trail exportieren und Scan-IDs mit internen Freigaben oder Release-Tickets verbinden. https://saferpage.de/portfolio/audit-json\n\n## Naechste geplante Scans\n- anrufer.info: 2026-06-14T01:22:43+00:00, hoch, Score kritisch\n- otto.de: 2026-06-14T02:14:43+00:00, hoch, Score kritisch, neuer Check\n- destatis.de: 2026-06-14T02:26:32+00:00, hoch, Score kritisch, neuer Check\n- bsi.bund.de: 2026-06-14T02:28:21+00:00, hoch, Score kritisch\n- bundesnetzagentur.de: 2026-06-14T02:28:23+00:00, hoch, Score kritisch\n- breitbandmessung.de: 2026-06-14T02:28:31+00:00, hoch, Score kritisch, neuer Check\n\n## Dispatch-Vorschau\n- anrufer.info: urgent_privacyops, 2026-06-14T01:22:43+00:00, sp-dispatch-9014c87dabc610affabc5d89\n- otto.de: urgent_privacyops, 2026-06-14T02:14:43+00:00, sp-dispatch-ed34ecc22bb4e19c0ae143eb\n- destatis.de: urgent_privacyops, 2026-06-14T02:26:32+00:00, sp-dispatch-d580fe63db952887e6ee5811\n- bsi.bund.de: urgent_privacyops, 2026-06-14T02:28:21+00:00, sp-dispatch-9abc8d39ce733f7e4d79fb5f\n- bundesnetzagentur.de: urgent_privacyops, 2026-06-14T02:28:23+00:00, sp-dispatch-68de3287d89594b6dda3a492"
                    }
                ]
            },
            "webhook_payload": {
                "event": "saferpage.portfolio.digest_ready",
                "idempotency_key": "sp-digest-management-792c78013bb2950d2da0",
                "recipient_group": "management",
                "subject": "SaferPage Portfolio-Digest: 495 Domains, 489 woechentliche Scans, 489 Dispatches",
                "links": {
                    "digest_json": "https://saferpage.de/portfolio/digest-json",
                    "digest_markdown": "https://saferpage.de/portfolio/digest-md",
                    "portfolio": "https://saferpage.de/portfolio"
                }
            }
        },
        {
            "id": "sp-digest-privacyops-792c78013bb2950d2da0",
            "recipient_group": "privacyops",
            "label": "PrivacyOps",
            "cadence": "weekly",
            "language": "de-DE",
            "send_window": {
                "weekday": "monday",
                "time_local": "09:00",
                "timezone": "Europe/Berlin"
            },
            "to": [
                "privacyops@example.invalid",
                "datenschutz@example.invalid"
            ],
            "subject": "SaferPage Portfolio-Digest: 495 Domains, 489 woechentliche Scans, 489 Dispatches",
            "preheader": "489 kritische Domain(s) brauchen priorisierte PrivacyOps-Nacharbeit.",
            "idempotency_key": "sp-digest-privacyops-792c78013bb2950d2da0",
            "retry_policy": {
                "max_attempts": 3,
                "backoff_seconds": [
                    300,
                    1800,
                    7200
                ],
                "dead_letter_queue": "privacyops.digest_delivery.failed"
            },
            "email_payload": {
                "from": "SaferPage Reports <reports@saferpage.de>",
                "to": [
                    "privacyops@example.invalid",
                    "datenschutz@example.invalid"
                ],
                "subject": "SaferPage Portfolio-Digest: 495 Domains, 489 woechentliche Scans, 489 Dispatches",
                "text_markdown": "# SaferPage Portfolio-Digest: 495 Domains, 489 woechentliche Scans, 489 Dispatches\n\n489 kritische Domain(s) brauchen priorisierte PrivacyOps-Nacharbeit.\n\n## Kennzahlen\n- Domains im Scanplan: 495\n- Woechentliche Scans: 489\n- Naechste 7 Tage: 489\n- Kritische Domains: 489\n- Dispatches: 489 (489 dringend)\n\n## Naechste Aktionen\n- **Programm-Owner/Datenschutz** (hoch): Kritische woechentliche Scans pruefen, Owner bestaetigen und Dispatch-Paket in Tickets uebernehmen. https://saferpage.de/portfolio/dispatch-json\n- **Website-Betrieb** (mittel): Naechste Batch-Termine aus dem Scanplan gegen Deployment- und Consent-Aenderungen abgleichen. https://saferpage.de/portfolio/schedule-json\n- **Audit/Compliance** (mittel): Audit-Trail exportieren und Scan-IDs mit internen Freigaben oder Release-Tickets verbinden. https://saferpage.de/portfolio/audit-json\n\n## Naechste geplante Scans\n- anrufer.info: 2026-06-14T01:22:43+00:00, hoch, Score kritisch\n- otto.de: 2026-06-14T02:14:43+00:00, hoch, Score kritisch, neuer Check\n- destatis.de: 2026-06-14T02:26:32+00:00, hoch, Score kritisch, neuer Check\n- bsi.bund.de: 2026-06-14T02:28:21+00:00, hoch, Score kritisch\n- bundesnetzagentur.de: 2026-06-14T02:28:23+00:00, hoch, Score kritisch\n- breitbandmessung.de: 2026-06-14T02:28:31+00:00, hoch, Score kritisch, neuer Check\n\n## Dispatch-Vorschau\n- anrufer.info: urgent_privacyops, 2026-06-14T01:22:43+00:00, sp-dispatch-9014c87dabc610affabc5d89\n- otto.de: urgent_privacyops, 2026-06-14T02:14:43+00:00, sp-dispatch-ed34ecc22bb4e19c0ae143eb\n- destatis.de: urgent_privacyops, 2026-06-14T02:26:32+00:00, sp-dispatch-d580fe63db952887e6ee5811\n- bsi.bund.de: urgent_privacyops, 2026-06-14T02:28:21+00:00, sp-dispatch-9abc8d39ce733f7e4d79fb5f\n- bundesnetzagentur.de: urgent_privacyops, 2026-06-14T02:28:23+00:00, sp-dispatch-68de3287d89594b6dda3a492",
                "headers": {
                    "X-SaferPage-Idempotency-Key": "sp-digest-privacyops-792c78013bb2950d2da0",
                    "X-SaferPage-Digest-Schema": "portfolio-scan-digest.v1"
                },
                "attachments": [
                    {
                        "filename": "saferpage-portfolio-digest.md",
                        "content_type": "text/markdown",
                        "url": "https://saferpage.de/portfolio/digest-md"
                    },
                    {
                        "filename": "saferpage-portfolio-digest.json",
                        "content_type": "application/json",
                        "url": "https://saferpage.de/portfolio/digest-json"
                    }
                ]
            },
            "sendgrid_payload": {
                "personalizations": [
                    {
                        "to": [
                            {
                                "email": "privacyops@example.invalid"
                            },
                            {
                                "email": "datenschutz@example.invalid"
                            }
                        ],
                        "custom_args": {
                            "idempotency_key": "sp-digest-privacyops-792c78013bb2950d2da0"
                        }
                    }
                ],
                "from": {
                    "email": "reports@saferpage.de",
                    "name": "SaferPage Reports"
                },
                "subject": "SaferPage Portfolio-Digest: 495 Domains, 489 woechentliche Scans, 489 Dispatches",
                "content": [
                    {
                        "type": "text/markdown",
                        "value": "# SaferPage Portfolio-Digest: 495 Domains, 489 woechentliche Scans, 489 Dispatches\n\n489 kritische Domain(s) brauchen priorisierte PrivacyOps-Nacharbeit.\n\n## Kennzahlen\n- Domains im Scanplan: 495\n- Woechentliche Scans: 489\n- Naechste 7 Tage: 489\n- Kritische Domains: 489\n- Dispatches: 489 (489 dringend)\n\n## Naechste Aktionen\n- **Programm-Owner/Datenschutz** (hoch): Kritische woechentliche Scans pruefen, Owner bestaetigen und Dispatch-Paket in Tickets uebernehmen. https://saferpage.de/portfolio/dispatch-json\n- **Website-Betrieb** (mittel): Naechste Batch-Termine aus dem Scanplan gegen Deployment- und Consent-Aenderungen abgleichen. https://saferpage.de/portfolio/schedule-json\n- **Audit/Compliance** (mittel): Audit-Trail exportieren und Scan-IDs mit internen Freigaben oder Release-Tickets verbinden. https://saferpage.de/portfolio/audit-json\n\n## Naechste geplante Scans\n- anrufer.info: 2026-06-14T01:22:43+00:00, hoch, Score kritisch\n- otto.de: 2026-06-14T02:14:43+00:00, hoch, Score kritisch, neuer Check\n- destatis.de: 2026-06-14T02:26:32+00:00, hoch, Score kritisch, neuer Check\n- bsi.bund.de: 2026-06-14T02:28:21+00:00, hoch, Score kritisch\n- bundesnetzagentur.de: 2026-06-14T02:28:23+00:00, hoch, Score kritisch\n- breitbandmessung.de: 2026-06-14T02:28:31+00:00, hoch, Score kritisch, neuer Check\n\n## Dispatch-Vorschau\n- anrufer.info: urgent_privacyops, 2026-06-14T01:22:43+00:00, sp-dispatch-9014c87dabc610affabc5d89\n- otto.de: urgent_privacyops, 2026-06-14T02:14:43+00:00, sp-dispatch-ed34ecc22bb4e19c0ae143eb\n- destatis.de: urgent_privacyops, 2026-06-14T02:26:32+00:00, sp-dispatch-d580fe63db952887e6ee5811\n- bsi.bund.de: urgent_privacyops, 2026-06-14T02:28:21+00:00, sp-dispatch-9abc8d39ce733f7e4d79fb5f\n- bundesnetzagentur.de: urgent_privacyops, 2026-06-14T02:28:23+00:00, sp-dispatch-68de3287d89594b6dda3a492"
                    }
                ]
            },
            "webhook_payload": {
                "event": "saferpage.portfolio.digest_ready",
                "idempotency_key": "sp-digest-privacyops-792c78013bb2950d2da0",
                "recipient_group": "privacyops",
                "subject": "SaferPage Portfolio-Digest: 495 Domains, 489 woechentliche Scans, 489 Dispatches",
                "links": {
                    "digest_json": "https://saferpage.de/portfolio/digest-json",
                    "digest_markdown": "https://saferpage.de/portfolio/digest-md",
                    "portfolio": "https://saferpage.de/portfolio"
                }
            }
        },
        {
            "id": "sp-digest-webbetrieb-792c78013bb2950d2da0",
            "recipient_group": "webbetrieb",
            "label": "Webbetrieb",
            "cadence": "weekly",
            "language": "de-DE",
            "send_window": {
                "weekday": "monday",
                "time_local": "09:00",
                "timezone": "Europe/Berlin"
            },
            "to": [
                "webbetrieb@example.invalid"
            ],
            "subject": "SaferPage Portfolio-Digest: 495 Domains, 489 woechentliche Scans, 489 Dispatches",
            "preheader": "489 kritische Domain(s) brauchen priorisierte PrivacyOps-Nacharbeit.",
            "idempotency_key": "sp-digest-webbetrieb-792c78013bb2950d2da0",
            "retry_policy": {
                "max_attempts": 3,
                "backoff_seconds": [
                    300,
                    1800,
                    7200
                ],
                "dead_letter_queue": "privacyops.digest_delivery.failed"
            },
            "email_payload": {
                "from": "SaferPage Reports <reports@saferpage.de>",
                "to": [
                    "webbetrieb@example.invalid"
                ],
                "subject": "SaferPage Portfolio-Digest: 495 Domains, 489 woechentliche Scans, 489 Dispatches",
                "text_markdown": "# SaferPage Portfolio-Digest: 495 Domains, 489 woechentliche Scans, 489 Dispatches\n\n489 kritische Domain(s) brauchen priorisierte PrivacyOps-Nacharbeit.\n\n## Kennzahlen\n- Domains im Scanplan: 495\n- Woechentliche Scans: 489\n- Naechste 7 Tage: 489\n- Kritische Domains: 489\n- Dispatches: 489 (489 dringend)\n\n## Naechste Aktionen\n- **Programm-Owner/Datenschutz** (hoch): Kritische woechentliche Scans pruefen, Owner bestaetigen und Dispatch-Paket in Tickets uebernehmen. https://saferpage.de/portfolio/dispatch-json\n- **Website-Betrieb** (mittel): Naechste Batch-Termine aus dem Scanplan gegen Deployment- und Consent-Aenderungen abgleichen. https://saferpage.de/portfolio/schedule-json\n- **Audit/Compliance** (mittel): Audit-Trail exportieren und Scan-IDs mit internen Freigaben oder Release-Tickets verbinden. https://saferpage.de/portfolio/audit-json\n\n## Naechste geplante Scans\n- anrufer.info: 2026-06-14T01:22:43+00:00, hoch, Score kritisch\n- otto.de: 2026-06-14T02:14:43+00:00, hoch, Score kritisch, neuer Check\n- destatis.de: 2026-06-14T02:26:32+00:00, hoch, Score kritisch, neuer Check\n- bsi.bund.de: 2026-06-14T02:28:21+00:00, hoch, Score kritisch\n- bundesnetzagentur.de: 2026-06-14T02:28:23+00:00, hoch, Score kritisch\n- breitbandmessung.de: 2026-06-14T02:28:31+00:00, hoch, Score kritisch, neuer Check\n\n## Dispatch-Vorschau\n- anrufer.info: urgent_privacyops, 2026-06-14T01:22:43+00:00, sp-dispatch-9014c87dabc610affabc5d89\n- otto.de: urgent_privacyops, 2026-06-14T02:14:43+00:00, sp-dispatch-ed34ecc22bb4e19c0ae143eb\n- destatis.de: urgent_privacyops, 2026-06-14T02:26:32+00:00, sp-dispatch-d580fe63db952887e6ee5811\n- bsi.bund.de: urgent_privacyops, 2026-06-14T02:28:21+00:00, sp-dispatch-9abc8d39ce733f7e4d79fb5f\n- bundesnetzagentur.de: urgent_privacyops, 2026-06-14T02:28:23+00:00, sp-dispatch-68de3287d89594b6dda3a492",
                "headers": {
                    "X-SaferPage-Idempotency-Key": "sp-digest-webbetrieb-792c78013bb2950d2da0",
                    "X-SaferPage-Digest-Schema": "portfolio-scan-digest.v1"
                },
                "attachments": [
                    {
                        "filename": "saferpage-portfolio-digest.md",
                        "content_type": "text/markdown",
                        "url": "https://saferpage.de/portfolio/digest-md"
                    },
                    {
                        "filename": "saferpage-portfolio-digest.json",
                        "content_type": "application/json",
                        "url": "https://saferpage.de/portfolio/digest-json"
                    }
                ]
            },
            "sendgrid_payload": {
                "personalizations": [
                    {
                        "to": [
                            {
                                "email": "webbetrieb@example.invalid"
                            }
                        ],
                        "custom_args": {
                            "idempotency_key": "sp-digest-webbetrieb-792c78013bb2950d2da0"
                        }
                    }
                ],
                "from": {
                    "email": "reports@saferpage.de",
                    "name": "SaferPage Reports"
                },
                "subject": "SaferPage Portfolio-Digest: 495 Domains, 489 woechentliche Scans, 489 Dispatches",
                "content": [
                    {
                        "type": "text/markdown",
                        "value": "# SaferPage Portfolio-Digest: 495 Domains, 489 woechentliche Scans, 489 Dispatches\n\n489 kritische Domain(s) brauchen priorisierte PrivacyOps-Nacharbeit.\n\n## Kennzahlen\n- Domains im Scanplan: 495\n- Woechentliche Scans: 489\n- Naechste 7 Tage: 489\n- Kritische Domains: 489\n- Dispatches: 489 (489 dringend)\n\n## Naechste Aktionen\n- **Programm-Owner/Datenschutz** (hoch): Kritische woechentliche Scans pruefen, Owner bestaetigen und Dispatch-Paket in Tickets uebernehmen. https://saferpage.de/portfolio/dispatch-json\n- **Website-Betrieb** (mittel): Naechste Batch-Termine aus dem Scanplan gegen Deployment- und Consent-Aenderungen abgleichen. https://saferpage.de/portfolio/schedule-json\n- **Audit/Compliance** (mittel): Audit-Trail exportieren und Scan-IDs mit internen Freigaben oder Release-Tickets verbinden. https://saferpage.de/portfolio/audit-json\n\n## Naechste geplante Scans\n- anrufer.info: 2026-06-14T01:22:43+00:00, hoch, Score kritisch\n- otto.de: 2026-06-14T02:14:43+00:00, hoch, Score kritisch, neuer Check\n- destatis.de: 2026-06-14T02:26:32+00:00, hoch, Score kritisch, neuer Check\n- bsi.bund.de: 2026-06-14T02:28:21+00:00, hoch, Score kritisch\n- bundesnetzagentur.de: 2026-06-14T02:28:23+00:00, hoch, Score kritisch\n- breitbandmessung.de: 2026-06-14T02:28:31+00:00, hoch, Score kritisch, neuer Check\n\n## Dispatch-Vorschau\n- anrufer.info: urgent_privacyops, 2026-06-14T01:22:43+00:00, sp-dispatch-9014c87dabc610affabc5d89\n- otto.de: urgent_privacyops, 2026-06-14T02:14:43+00:00, sp-dispatch-ed34ecc22bb4e19c0ae143eb\n- destatis.de: urgent_privacyops, 2026-06-14T02:26:32+00:00, sp-dispatch-d580fe63db952887e6ee5811\n- bsi.bund.de: urgent_privacyops, 2026-06-14T02:28:21+00:00, sp-dispatch-9abc8d39ce733f7e4d79fb5f\n- bundesnetzagentur.de: urgent_privacyops, 2026-06-14T02:28:23+00:00, sp-dispatch-68de3287d89594b6dda3a492"
                    }
                ]
            },
            "webhook_payload": {
                "event": "saferpage.portfolio.digest_ready",
                "idempotency_key": "sp-digest-webbetrieb-792c78013bb2950d2da0",
                "recipient_group": "webbetrieb",
                "subject": "SaferPage Portfolio-Digest: 495 Domains, 489 woechentliche Scans, 489 Dispatches",
                "links": {
                    "digest_json": "https://saferpage.de/portfolio/digest-json",
                    "digest_markdown": "https://saferpage.de/portfolio/digest-md",
                    "portfolio": "https://saferpage.de/portfolio"
                }
            }
        }
    ],
    "links": {
        "portfolio": "https://saferpage.de/portfolio",
        "json": "https://saferpage.de/portfolio/digest-delivery-json",
        "csv": "https://saferpage.de/portfolio/digest-delivery-csv",
        "digest_json": "https://saferpage.de/portfolio/digest-json",
        "digest_markdown": "https://saferpage.de/portfolio/digest-md"
    },
    "sources": [
        {
            "title": "Cookiebot Terms",
            "url": "https://www.cookiebot.com/en/terms-of-service-cookiebot/",
            "note": "Orientierung fuer monatliche Scanreports und mehrere Report-Empfaenger."
        },
        {
            "title": "Cookiebot Scan Reports",
            "url": "https://support.cookiebot.com/hc/en-us/articles/5007079527580-Understanding-the-scan-report",
            "note": "Orientierung fuer wiederkehrende Scanreports."
        },
        {
            "title": "Osano Compliance Check",
            "url": "https://www.osano.com/features/compliance-check",
            "note": "Orientierung fuer kontinuierliche Compliance-Nachweise und Audit Trails."
        }
    ],
    "disclaimer": "Empfaengeradressen sind Platzhalter. Produktiv muessen Betreiber Mailserver, API-Keys, Einwilligungen, Verteiler und Aufbewahrungsregeln selbst konfigurieren.",
    "cache": {
        "status": "miss",
        "ttl_seconds": 180
    }
}
