{
    "schema": "https://saferpage.de/schemas/alert-delivery-readiness-smoke.v1",
    "generated_at": "2026-06-09T17:46:10+00:00",
    "ok": true,
    "summary": "No-Secret-Smoke fuer Alert-Delivery-Preflight, Dispatch-Runner, Runtime-Kontrollen, Delivery-Fixture, Operator-Go-live und isolierten Dry-run.",
    "host": "anrufer.info",
    "source_preflight_schema": "https://saferpage.de/schemas/operator-delivery-credential-preflight.v1",
    "source_preflight_url": "https://saferpage.de/integrationen/delivery-credential-preflight-json",
    "metrics": {
        "target_count": 6,
        "http_passed_count": 6,
        "http_failed_count": 0,
        "check_count": 9,
        "failed_check_count": 0,
        "blocked_expected_count": 1,
        "dispatch_approved": 0,
        "native_ready_channel_count": 1,
        "preflight_blocked_gate_count": 1,
        "runner_sent_count": 0,
        "runner_external_send_attempt_count": 0,
        "runner_local_file_sink_attempt_count": 0,
        "dry_run_sent_count": 0,
        "dry_run_queued_count": 1
    },
    "checks": [
        {
            "id": "public_routes_http_200",
            "label": "Öffentliche Alert-Delivery-Readiness-Routen erreichbar",
            "status": "passed",
            "evidence": "6/6 Route(s) liefern HTTP 200.",
            "operator_action": "Weiter mit Delivery-Go-live-Gates."
        },
        {
            "id": "dry_run_blocks_external_delivery",
            "label": "Dry-run sendet keine externe Zustellung",
            "status": "passed",
            "evidence": "dry_run_ok=yes, sent_count=0, dry_run_queued_count=1.",
            "operator_action": "Dry-run isoliert halten; externe Zustellung nur mit Execute-Gate, Approval und konfiguriertem Ziel."
        },
        {
            "id": "runner_no_unapproved_delivery",
            "label": "Runner-State zeigt keine ungeprüften Sendungen",
            "status": "passed",
            "evidence": "sent_count=0, external_send_attempt_count=0, local_file_sink_attempt_count=0.",
            "operator_action": "Ungeplante Zustellung stoppen und Public-State/Journal prüfen."
        },
        {
            "id": "runtime_controls_documented",
            "label": "Delivery-Runtime-Kontrollen dokumentiert",
            "status": "passed",
            "evidence": "8 Runtime-Control-Einträge, Approval-/Execute-/HMAC-/Dry-run-Gates geprüft.",
            "operator_action": "Runtime-Controls bei Runner- oder Zielsystem-Änderungen erneut reviewen."
        },
        {
            "id": "delivery_payload_fixture_contract",
            "label": "Delivery-Payload-Fixture ist abnahmefähig",
            "status": "passed",
            "evidence": "receiver_signature=HMAC-SHA256 over the compact JSON request body, formatted as sha256=<hex>..",
            "operator_action": "Receiver muss Idempotency-Key und optional HMAC-Signatur prüfen."
        },
        {
            "id": "dispatch_approval_blocker_explicit",
            "label": "Produktivblocker Dispatch-Freigabe explizit",
            "status": "blocked_expected",
            "evidence": "dispatch_approved=no.",
            "operator_action": "SAFERPAGE_ALERT_DISPATCH_APPROVED erst nach Zielsystem-, Empfänger- und Datenschutzfreigabe setzen."
        },
        {
            "id": "target_channel_blocker_explicit",
            "label": "Produktivblocker Zielsystem explizit",
            "status": "passed",
            "evidence": "native_ready_channel_count=1, blocked_gate_count=1.",
            "operator_action": "Signatur und Dedupe im Zielsystem testen."
        },
        {
            "id": "operator_go_live_links_delivery_blocker",
            "label": "Operator-Go-live verlinkt Delivery-Blocker",
            "status": "passed",
            "evidence": "Go-live Delivery-Phase=yes, alert_runner_available=1, alert_sent_count=0.",
            "operator_action": "Go-live-Center nach Zielsystem-/Approval-Freigaben erneut prüfen."
        },
        {
            "id": "public_exports_no_secret_scan",
            "label": "Öffentliche Delivery-Exports enthalten keine offensichtlichen Secret-Werte",
            "status": "passed",
            "evidence": "Keine Forbidden-Pattern-Treffer.",
            "operator_action": "Exports können in die Abnahmeakte."
        }
    ],
    "failed_checks": [],
    "failed_targets": [],
    "targets": [
        {
            "id": "delivery_credential_preflight_json",
            "label": "Delivery Credential Preflight JSON",
            "url": "https://saferpage.de/integrationen/delivery-credential-preflight-json",
            "path": "/integrationen/delivery-credential-preflight-json",
            "expected_http_status": 200,
            "actual_http_status": 200,
            "ok": true,
            "started_at": "2026-06-09T17:46:09Z",
            "finished_at": "2026-06-09T17:46:09Z"
        },
        {
            "id": "alert_dispatch_runner_json",
            "label": "Alert Dispatch Runner JSON",
            "url": "https://saferpage.de/alarme/dispatch-runner-json",
            "path": "/alarme/dispatch-runner-json",
            "expected_http_status": 200,
            "actual_http_status": 200,
            "ok": true,
            "started_at": "2026-06-09T17:46:09Z",
            "finished_at": "2026-06-09T17:46:09Z"
        },
        {
            "id": "delivery_runtime_controls",
            "label": "Delivery Runtime Controls",
            "url": "https://saferpage.de/evidence/delivery-runtime-controls.json",
            "path": "/evidence/delivery-runtime-controls.json",
            "expected_http_status": 200,
            "actual_http_status": 200,
            "ok": true,
            "started_at": "2026-06-09T17:46:09Z",
            "finished_at": "2026-06-09T17:46:09Z"
        },
        {
            "id": "delivery_approval_template_env",
            "label": "Delivery Approval Env Template",
            "url": "https://saferpage.de/integrationen/delivery-approval-template.env",
            "path": "/integrationen/delivery-approval-template.env",
            "expected_http_status": 200,
            "actual_http_status": 200,
            "ok": true,
            "started_at": "2026-06-09T17:46:09Z",
            "finished_at": "2026-06-09T17:46:09Z"
        },
        {
            "id": "alert_delivery_package_json",
            "label": "Alert Delivery Package JSON",
            "url": "https://saferpage.de/alarme/anrufer.info/delivery-json",
            "path": "/alarme/anrufer.info/delivery-json",
            "expected_http_status": 200,
            "actual_http_status": 200,
            "ok": true,
            "started_at": "2026-06-09T17:46:09Z",
            "finished_at": "2026-06-09T17:46:09Z"
        },
        {
            "id": "operator_go_live_json",
            "label": "Operator Go-live JSON",
            "url": "https://saferpage.de/betreiber/go-live-json",
            "path": "/betreiber/go-live-json",
            "expected_http_status": 200,
            "actual_http_status": 200,
            "ok": true,
            "started_at": "2026-06-09T17:46:09Z",
            "finished_at": "2026-06-09T17:46:09Z"
        }
    ],
    "dry_run_smoke": {
        "ok": true,
        "exit_code": 0,
        "evaluated_count": 1,
        "sent_count": 0,
        "dry_run_queued_count": 1,
        "external_delivery_only_if": "--execute-ready was passed, SAFERPAGE_ALERT_DISPATCH_APPROVED=yes and the channel target is configured"
    },
    "no_secret_policy": {
        "contains_secrets": false,
        "contains_target_urls": false,
        "contains_recipients": false,
        "contains_raw_payloads": false,
        "contains_private_documents": false,
        "contains_visitor_logs": false,
        "public_export_secret_pattern_hits": []
    },
    "claim_boundary": "Dieser Smoke setzt keine Delivery-Secrets, konfiguriert keine Zielsysteme, versendet keine Alerts, schreibt keinen produktiven Sink und veröffentlicht keine Webhook-URLs, Tokens, Empfänger oder Rohpayloads."
}
