{
    "schema": "https://saferpage.de/schemas/portfolio-domain-intake.v1",
    "generated_at": "2026-07-11T08:21:02+00:00",
    "summary": "Bulk-Domain-Onboarding für SaferPage-Portfolios mit Importfeldern, Validierungsregeln, Gruppenlogik, Beispielzeilen und CSV-Template.",
    "metrics": {
        "current_domain_count": 1000,
        "domain_group_count": 5,
        "sample_row_count": 12,
        "required_field_count": 4
    },
    "import_fields": [
        {
            "name": "domain",
            "required": true,
            "example": "example.de",
            "description": "Kanonische Domain ohne Protokoll und Pfad."
        },
        {
            "name": "domain_group",
            "required": true,
            "example": "Deutschland",
            "description": "Portfolio-Gruppe, Markt oder Marke."
        },
        {
            "name": "owner",
            "required": true,
            "example": "Website-Betrieb",
            "description": "Fachlicher Betreiber oder Verantwortlicher."
        },
        {
            "name": "scan_cadence",
            "required": true,
            "example": "monthly",
            "description": "weekly, biweekly, monthly oder manual."
        },
        {
            "name": "jurisdiction",
            "required": false,
            "example": "DE/EU",
            "description": "Rechtsraum für Reporting und Priorisierung."
        },
        {
            "name": "requires_login",
            "required": false,
            "example": "no",
            "description": "Ob Login-/Staging-Scope separat freigegeben werden muss."
        },
        {
            "name": "robots_policy",
            "required": false,
            "example": "respect",
            "description": "respect, allowlisted oder manual_review."
        },
        {
            "name": "custom_headers",
            "required": false,
            "example": "X-SaferPage-Contact: privacy@example.de",
            "description": "Optionale Header für freigegebene Scans."
        },
        {
            "name": "priority",
            "required": false,
            "example": "normal",
            "description": "high, medium oder normal."
        },
        {
            "name": "notes",
            "required": false,
            "example": "Relaunch Q3",
            "description": "Interner Kontext für Verantwortlichkeit und ScanOps."
        }
    ],
    "validation_rules": [
        {
            "field": "domain",
            "rule": "lowercase_domain",
            "message": "Nur Hostnamen ohne https://, Pfad, Query oder Fragment importieren."
        },
        {
            "field": "scan_cadence",
            "rule": "enum:weekly,biweekly,monthly,manual",
            "message": "Kadenz muss einer der freigegebenen Werte sein."
        },
        {
            "field": "requires_login",
            "rule": "enum:yes,no",
            "message": "Login-Scope braucht separate Betreiberfreigabe."
        },
        {
            "field": "robots_policy",
            "rule": "enum:respect,allowlisted,manual_review",
            "message": "Robots-/Allowlist-Entscheidung dokumentieren."
        },
        {
            "field": "priority",
            "rule": "enum:high,medium,normal",
            "message": "Prioritaet steuert Scanplan und Dispatch."
        }
    ],
    "domain_groups": [
        {
            "id": "schweiz",
            "label": "Schweiz",
            "domain_count": 445,
            "sample_hosts": [
                "weiterbildung-evaluationqualifikationsprofil.sdbb.ch",
                "weiterbildung.sdbb.ch",
                "seaio.ch",
                "scuol-trail.ch",
                "sdbb.ch",
                "schweizerjaeger.ch",
                "schweizerischesseeschifffahrtsamt.eda.admin.ch",
                "schwyzermedienhaus.ch"
            ]
        },
        {
            "id": "_sterreich",
            "label": "Österreich",
            "domain_count": 246,
            "sample_hosts": [
                "shop.seefestspiele-moerbisch.at",
                "seefestspiele-moerbisch.at",
                "ff-wernstein.at",
                "ffhoecking.at",
                "ffhackenbuch.at",
                "ff-zell-pram.at",
                "ff-reikersham.at",
                "ff-wallensham.at"
            ]
        },
        {
            "id": "deutschland",
            "label": "Deutschland",
            "domain_count": 304,
            "sample_hosts": [
                "landesmuseum-hannover.de",
                "klimaoasen-oldenburg.de",
                "friedrichshainblog.de",
                "mediendesign-rexhausen.de",
                "jenkosternberg.de",
                "buskers-braunschweig.de",
                "aryzta.de",
                "truderinger.de"
            ]
        },
        {
            "id": "liechtenstein",
            "label": "Liechtenstein",
            "domain_count": 2,
            "sample_hosts": [
                "pur.li",
                "shop.kaiser.li"
            ]
        },
        {
            "id": "luxemburg",
            "label": "Luxemburg",
            "domain_count": 3,
            "sample_hosts": [
                "letzshop.lu",
                "electronic-shop.lu",
                "ltoys.lu"
            ]
        }
    ],
    "sample_rows": [
        {
            "domain": "weiterbildung-evaluationqualifikationsprofil.sdbb.ch",
            "domain_group": "Schweiz",
            "owner": "Website-Betrieb",
            "scan_cadence": "monthly",
            "jurisdiction": "CH",
            "requires_login": "no",
            "robots_policy": "respect",
            "custom_headers": "",
            "priority": "normal",
            "notes": "aus bestehendem SaferPage-Check abgeleitet"
        },
        {
            "domain": "shop.seefestspiele-moerbisch.at",
            "domain_group": "Österreich",
            "owner": "Datenschutz/Website-Betrieb",
            "scan_cadence": "biweekly",
            "jurisdiction": "AT/EU",
            "requires_login": "no",
            "robots_policy": "respect",
            "custom_headers": "",
            "priority": "medium",
            "notes": "aus bestehendem SaferPage-Check abgeleitet"
        },
        {
            "domain": "weiterbildung.sdbb.ch",
            "domain_group": "Schweiz",
            "owner": "Website-Betrieb",
            "scan_cadence": "monthly",
            "jurisdiction": "CH",
            "requires_login": "no",
            "robots_policy": "respect",
            "custom_headers": "",
            "priority": "normal",
            "notes": "aus bestehendem SaferPage-Check abgeleitet"
        },
        {
            "domain": "seefestspiele-moerbisch.at",
            "domain_group": "Österreich",
            "owner": "Datenschutz/Website-Betrieb",
            "scan_cadence": "biweekly",
            "jurisdiction": "AT/EU",
            "requires_login": "no",
            "robots_policy": "respect",
            "custom_headers": "",
            "priority": "medium",
            "notes": "aus bestehendem SaferPage-Check abgeleitet"
        },
        {
            "domain": "seaio.ch",
            "domain_group": "Schweiz",
            "owner": "Datenschutz/Website-Betrieb",
            "scan_cadence": "biweekly",
            "jurisdiction": "CH",
            "requires_login": "no",
            "robots_policy": "respect",
            "custom_headers": "",
            "priority": "medium",
            "notes": "aus bestehendem SaferPage-Check abgeleitet"
        },
        {
            "domain": "ff-wernstein.at",
            "domain_group": "Österreich",
            "owner": "Datenschutz/Website-Betrieb",
            "scan_cadence": "biweekly",
            "jurisdiction": "AT/EU",
            "requires_login": "no",
            "robots_policy": "respect",
            "custom_headers": "",
            "priority": "medium",
            "notes": "aus bestehendem SaferPage-Check abgeleitet"
        },
        {
            "domain": "ffhoecking.at",
            "domain_group": "Österreich",
            "owner": "Website-Betrieb",
            "scan_cadence": "monthly",
            "jurisdiction": "AT/EU",
            "requires_login": "no",
            "robots_policy": "respect",
            "custom_headers": "",
            "priority": "normal",
            "notes": "aus bestehendem SaferPage-Check abgeleitet"
        },
        {
            "domain": "ffhackenbuch.at",
            "domain_group": "Österreich",
            "owner": "Website-Betrieb",
            "scan_cadence": "monthly",
            "jurisdiction": "AT/EU",
            "requires_login": "no",
            "robots_policy": "respect",
            "custom_headers": "",
            "priority": "normal",
            "notes": "aus bestehendem SaferPage-Check abgeleitet"
        },
        {
            "domain": "ff-zell-pram.at",
            "domain_group": "Österreich",
            "owner": "Website-Betrieb",
            "scan_cadence": "monthly",
            "jurisdiction": "AT/EU",
            "requires_login": "no",
            "robots_policy": "respect",
            "custom_headers": "",
            "priority": "normal",
            "notes": "aus bestehendem SaferPage-Check abgeleitet"
        },
        {
            "domain": "ff-reikersham.at",
            "domain_group": "Österreich",
            "owner": "Website-Betrieb",
            "scan_cadence": "monthly",
            "jurisdiction": "AT/EU",
            "requires_login": "no",
            "robots_policy": "respect",
            "custom_headers": "",
            "priority": "normal",
            "notes": "aus bestehendem SaferPage-Check abgeleitet"
        },
        {
            "domain": "ff-wallensham.at",
            "domain_group": "Österreich",
            "owner": "Datenschutz/Website-Betrieb",
            "scan_cadence": "biweekly",
            "jurisdiction": "AT/EU",
            "requires_login": "no",
            "robots_policy": "respect",
            "custom_headers": "",
            "priority": "medium",
            "notes": "aus bestehendem SaferPage-Check abgeleitet"
        },
        {
            "domain": "ff-pramau.at",
            "domain_group": "Österreich",
            "owner": "Website-Betrieb",
            "scan_cadence": "monthly",
            "jurisdiction": "AT/EU",
            "requires_login": "no",
            "robots_policy": "respect",
            "custom_headers": "",
            "priority": "normal",
            "notes": "aus bestehendem SaferPage-Check abgeleitet"
        }
    ],
    "scan_defaults": {
        "user_agent": "SaferPageCrawler/0.3 (+https://saferpage.de/bot; report examples: https://saferpage.de/tests)",
        "default_cadence": "monthly",
        "high_risk_cadence": "weekly",
        "robots_default": "respect",
        "screenshot_max_preview": "160x150"
    },
    "links": {
        "portfolio": "https://saferpage.de/portfolio",
        "json": "https://saferpage.de/portfolio/domain-intake-json",
        "csv_template": "https://saferpage.de/portfolio/domain-intake-csv",
        "validation_json": "https://saferpage.de/portfolio/domain-intake-validate-json",
        "validation_csv": "https://saferpage.de/portfolio/domain-intake-validate-csv",
        "crawler": "https://saferpage.de/crawler",
        "bot": "https://saferpage.de/bot",
        "tests": "https://saferpage.de/tests"
    },
    "sources": [
        {
            "title": "Osano Compliance Check",
            "url": "https://www.osano.com/features/compliance-check",
            "note": "Orientierung für Centralized Domain Management und Scheduled Privacy Scans."
        },
        {
            "title": "OneTrust Website Scanner",
            "url": "https://my.onetrust.com/articles/en_US/Knowledge/UUID-d23e8f8a-9a1b-4115-7d64-4c653dc0a14a",
            "note": "Orientierung für Websites-Liste, nächsten geplanten Scan und Seiten-/Formularinformationen."
        },
        {
            "title": "Cookiebot Terms",
            "url": "https://www.cookiebot.com/en/terms-of-service-cookiebot/",
            "note": "Orientierung für mehrere Domains, monatliche Scans und Report-Empfänger."
        }
    ],
    "disclaimer": "Das Intake-Paket ist eine Importvorlage. Produktive Massenänderungen, Login-Scopes, Header, Allowlisting und Verantwortlichkeiten müssen Betreiber freigeben.",
    "cache": {
        "status": "miss",
        "ttl_seconds": 180
    }
}
