Delivery Credential Preflight

Produktiver Versand bleibt an Zielsystem-Gates gebunden

Delivery-Credential-Preflight: 1 von 7 Zielsystemtypen voll konfiguriert, 0 teilweise, native Runner-Ziele 1, Versandfreigabe nicht aktiv.

Dieser Preflight zeigt nur Credential-Referenzen, Gate-Status und Betriebsnachweise. Er veroeffentlicht keine Webhook-URLs, API-Keys, Tokens, E-Mail-Empfaenger, Slack-/Teams-Ziel-URLs oder privaten Rohpayloads.

blockedStatus 1/7Ziele ready 1nativ sendbar neinFreigabe 64Outbox 0gesendet passedSmoke 0Smoke-Fehler 0External Attempts 6Cred-Refs 8Controls 1blockiert 1Warnungen

Letzter Smoke-Lauf

Alert-Delivery-Readiness ohne Secret- oder Versandfreigabe

No-Secret-Smoke fuer Alert-Delivery-Preflight, Dispatch-Runner, Runtime-Kontrollen, Delivery-Fixture, Operator-Go-live und isolierten Dry-run.

passedStatus 6Ziele 0failed 1erwartete Blocker 0Dry-run gesendet 0Runner gesendet
No-Secret- und No-Send-Grenze Produktiver Versand bleibt an Betreiberfreigabe, Zielsystem und Receiver-Abnahme gebunden.

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.

Approval
blockiert
native Ziele
1
Evidence
öffnen

Approval-Paket

Env-Template, Smoke-Matrix und Abnahme fuer Betreiber

Dieses Paket exportiert nur Env-Referenzen, Placeholder, Smoke-Kommandos und Abnahmekriterien; keine echten URLs, Tokens, Empfaenger oder Payload-Rohdaten.

Env-Datei/etc/saferpage/alert-dispatch.env sendetnein Secretskeine Werte Smokes4
SAFERPAGE_ALERT_DISPATCH_APPROVED Pflicht fuer Produktivversand

Finales Betreiber-Go-live-Gate; erst nach Dry-run, Empfaenger- und Datenschutzfreigabe auf yes setzen.

Beispielwert: no
SAFERPAGE_WEBHOOK_URL Ziel-/Option-Referenz

Generisches Betreiber-Webhook-Ziel.

Beispielwert: __SET_IN_SECRET_MANAGER_OR_SECURE_SERVER_ENV__
SAFERPAGE_WEBHOOK_SECRET Ziel-/Option-Referenz

HMAC-SHA256-Secret fuer generische Webhook-Payloads.

Beispielwert: __SET_IN_SECRET_MANAGER_OR_SECURE_SERVER_ENV__
SAFERPAGE_SLACK_WEBHOOK_URL Ziel-/Option-Referenz

Slack Incoming Webhook fuer PrivacyOps-/Security-Alerts.

Beispielwert: __SET_IN_SECRET_MANAGER_OR_SECURE_SERVER_ENV__
SAFERPAGE_TEAMS_WEBHOOK_URL Ziel-/Option-Referenz

Microsoft Teams Incoming Webhook fuer Betreiber-Alerts.

Beispielwert: __SET_IN_SECRET_MANAGER_OR_SECURE_SERVER_ENV__
SAFERPAGE_LOCAL_FILE_SINK_PATH Ziel-/Option-Referenz

Optionaler lokaler Audit-Sink fuer sanitisierte Zustellnachweise.

Beispielwert: /var/www/saferpage.de/runtime/alert_delivery_sink.jsonl
dry_run_no_send

scripts/run-alert-dispatch-dry-run-smoke.sh

sent_count=0, external_send_attempt_count=0, local_file_sink_attempt_count=0.
execute_ready_without_approval

python3 scripts/run-alert-dispatch.py anrufer.info --base-url http://127.0.0.1 --max 1 --timeout 15 --execute-ready

Ohne SAFERPAGE_ALERT_DISPATCH_APPROVED=yes bleibt sent_count=0.
receiver_payload_fixture

curl -fsS https://saferpage.de/alarme/anrufer.info/delivery-json

Payload enthaelt Idempotency-Key, body_sha256 und HMAC-Receiver-Vertrag ohne Ziel-URL.
public_runner_state

curl -fsS https://saferpage.de/alarme/dispatch-runner-json

Public State enthaelt nur Env-Refs, Hashes und Status; keine Secrets, Ziel-URLs oder Empfaenger.

Zielsysteme

Welche Credentials fehlen noch

Alle Angaben sind Referenznamen. Werte, URLs, Empfaenger und Tokens werden nicht ausgegeben.

Integrationen
Lokaler Audit-File-Sink ready_for_approval · native_alert_dispatch_runner

Interne, secretfreie Zustell-Evidence als JSONL schreiben, ohne externe Ziel-URL, Empfaenger oder Payload-Rohdaten zu veroeffentlichen.

Owner
IT/Compliance
benoetigt
fehlt
nichts
Events
monitoring.alert
Generischer Webhook missing_configuration · native_alert_dispatch_runner

Alerts, Remediation-Tickets, Portfolio-Digests und Scan-Dispatches an eine eigene Orchestrierung senden.

Owner
IT/Platform
benoetigt
SAFERPAGE_WEBHOOK_URL, SAFERPAGE_WEBHOOK_SECRET
fehlt
SAFERPAGE_WEBHOOK_URL, SAFERPAGE_WEBHOOK_SECRET
Events
monitoring.alert, operator.remediation.ticket_ready, saferpage.portfolio.digest, saferpage.portfolio.scan_dispatch
Slack missing_configuration · native_alert_dispatch_runner

PrivacyOps- und Security-Kanaele mit priorisierten Alerts, Ownern und SLA-Kontext informieren.

Owner
PrivacyOps
benoetigt
SAFERPAGE_SLACK_WEBHOOK_URL
fehlt
SAFERPAGE_SLACK_WEBHOOK_URL
Events
monitoring.alert, operator.remediation.ticket_ready, saferpage.portfolio.scan_dispatch
Microsoft Teams missing_configuration · native_alert_dispatch_runner

Adaptive Cards fuer Betreiber-, Datenschutz- oder Security-Teams vorbereiten.

Owner
Website-Betrieb
benoetigt
SAFERPAGE_TEAMS_WEBHOOK_URL
fehlt
SAFERPAGE_TEAMS_WEBHOOK_URL
Events
monitoring.alert, operator.remediation.ticket_ready, saferpage.portfolio.scan_dispatch
Jira missing_configuration · delivery_payload_ready_in_exports

Remediation- und Alert-Aufgaben mit External-ID, Labels, Prioritaet und Akzeptanzkriterien anlegen.

Owner
Projekt-/Ticket-Owner
benoetigt
SAFERPAGE_JIRA_BASE_URL, SAFERPAGE_JIRA_EMAIL, SAFERPAGE_JIRA_API_TOKEN
fehlt
SAFERPAGE_JIRA_BASE_URL, SAFERPAGE_JIRA_EMAIL, SAFERPAGE_JIRA_API_TOKEN
Events
operator.remediation.ticket_ready, monitoring.alert
E-Mail/SMTP missing_configuration · delivery_payload_ready_in_exports

Portfolio-Digests und Eskalationen an Management, Datenschutz und Webbetrieb zustellen.

Owner
Programm-Owner
benoetigt
SAFERPAGE_MAIL_FROM, SAFERPAGE_MAIL_TO
fehlt
SAFERPAGE_MAIL_FROM, SAFERPAGE_MAIL_TO
Events
saferpage.portfolio.digest, monitoring.alert
SendGrid missing_configuration · delivery_payload_ready_in_exports

Wiederkehrende Portfolio-Digests ueber einen Mail-Provider ausliefern.

Owner
IT/Platform
benoetigt
SENDGRID_API_KEY, SAFERPAGE_MAIL_FROM, SAFERPAGE_MAIL_TO
fehlt
SENDGRID_API_KEY, SAFERPAGE_MAIL_FROM, SAFERPAGE_MAIL_TO
Events
saferpage.portfolio.digest

Readiness-Gates

Warum produktiver Versand noch blockiert oder freigegeben ist

Wettbewerbsmatrix
Produktive Alert-Zustellung freigegeben blocked

SAFERPAGE_ALERT_DISPATCH_APPROVED ist nicht aktiv; Runner bleibt Dry-run/Outbox.

Gate
dispatch_approval
Aktion
Freigabe erst nach Zielsystem-Dry-run, Empfaengerfreigabe, Datenschutz-/Security-Abnahme und Monitoring setzen.
Mindestens ein nativ sendbares Zielsystem konfiguriert passed

1 native(s) Zielsystem(e) sind voll konfiguriert: Webhook, Slack oder Teams.

Gate
native_target_available
Aktion
Mindestens SAFERPAGE_WEBHOOK_URL plus Secret oder SAFERPAGE_SLACK_WEBHOOK_URL/SAFERPAGE_TEAMS_WEBHOOK_URL serverseitig setzen.
HMAC-Signatur fuer Betreiber-Webhook verfuegbar warning

Kein HMAC-Secret gesetzt; generische Webhooks koennen nicht signiert werden.

Gate
signed_delivery
Aktion
HMAC-Secret im Secret Manager oder in /etc/saferpage/alert-dispatch.env setzen.
Alert-Dispatch-Runner-State erreichbar passed

State alert_dispatch_runner_state.json ist lesbar; sent=0, deliverable=16, errors=0.

Gate
dispatch_runner_state
Aktion
Timer und Runner-State unter /alarme/dispatch-runner-json pruefen.
Dry-run/Outbox als Testnachweis vorhanden passed

64 Outbox-Eintraege im letzten Runner-State.

Gate
dry_run_outbox
Aktion
Mit Beispiel-Domain einen Dry-run ausfuehren und Body-SHA-256, Idempotency-Key und Zielsystemstatus pruefen.
No-Secret-Export passed

Dieser Preflight zeigt nur Env-Referenzen und present/missing-Status, keine Werte, Ziel-URLs, Empfaenger, Tokens oder API-Keys.

Gate
no_secret_export
Aktion
Neue Felder vor Veroeffentlichung auf Secrets, URLs, Empfaenger und Rohpayloads pruefen.
Runtime-Control-Manifest vorhanden passed

8 Delivery-Runtime-Kontrolle(n) im Evidence-Manifest dokumentiert.

Gate
runtime_controls_manifest
Aktion
Manifest und Smoke nach Runner-Aenderungen erneut pruefen.
Idempotency- und Retry-Vertrag vorhanden passed

Delivery-Payloads und Runner-State nutzen Idempotency-Key, Body-SHA-256, Status und Stop-Bedingungen.

Gate
idempotency_contract
Aktion
Zielsysteme muessen Idempotency-Key als externe ID oder Dedupe-Key verwenden.
Zielsystem-Matrix abgedeckt passed

1 ready, 0 teilweise, 7 Zielsystemtypen im Preflight.

Gate
provider_matrix_complete
Aktion
Jira/E-Mail/SendGrid produktiv erst mit Connector-Code oder externem Orchestrator aktivieren.

Runner-Snapshot

Letzte Outbox ohne Zielsystem-Leaks

Dispatch-Runner
Statelesbar Start2026-06-09T08:46:39+00:00 Ende2026-06-09T08:46:40+00:00 execute-readyja approvednein sent0
parodontologie-darmstadt.de · generic_webhook blocked_missing_target

Zielreferenz: SAFERPAGE_WEBHOOK_URL

konfiguriert
nein
gesendet
nein
Idempotency
sp-alert-b2ee1e913fd19253e3afb760
Body SHA-256
48e7270f29215609eca12980
parodontologie-darmstadt.de · slack blocked_missing_target

Zielreferenz: SAFERPAGE_SLACK_WEBHOOK_URL

konfiguriert
nein
gesendet
nein
Idempotency
sp-alert-b2ee1e913fd19253e3afb760
Body SHA-256
9ca8c93265891544dcbe140e
parodontologie-darmstadt.de · teams blocked_missing_target

Zielreferenz: SAFERPAGE_TEAMS_WEBHOOK_URL

konfiguriert
nein
gesendet
nein
Idempotency
sp-alert-b2ee1e913fd19253e3afb760
Body SHA-256
c3c17a3d57c79f3985b87705
parodontologie-darmstadt.de · local_file_sink queued_dry_run

Zielreferenz: SAFERPAGE_LOCAL_FILE_SINK_PATH

konfiguriert
ja
gesendet
nein
Idempotency
sp-alert-b2ee1e913fd19253e3afb760
Body SHA-256
48e7270f29215609eca12980
dtb.de · generic_webhook blocked_missing_target

Zielreferenz: SAFERPAGE_WEBHOOK_URL

konfiguriert
nein
gesendet
nein
Idempotency
sp-alert-c52a43a27a8f05699e768ed0
Body SHA-256
660ad8e329750089362d5ed1
dtb.de · slack blocked_missing_target

Zielreferenz: SAFERPAGE_SLACK_WEBHOOK_URL

konfiguriert
nein
gesendet
nein
Idempotency
sp-alert-c52a43a27a8f05699e768ed0
Body SHA-256
34c74317b8313123987a220e
dtb.de · teams blocked_missing_target

Zielreferenz: SAFERPAGE_TEAMS_WEBHOOK_URL

konfiguriert
nein
gesendet
nein
Idempotency
sp-alert-c52a43a27a8f05699e768ed0
Body SHA-256
c8c16deb00e908094bb5babf
dtb.de · local_file_sink queued_dry_run

Zielreferenz: SAFERPAGE_LOCAL_FILE_SINK_PATH

konfiguriert
ja
gesendet
nein
Idempotency
sp-alert-c52a43a27a8f05699e768ed0
Body SHA-256
660ad8e329750089362d5ed1
fahrrad-buecher-karten.de · generic_webhook blocked_missing_target

Zielreferenz: SAFERPAGE_WEBHOOK_URL

konfiguriert
nein
gesendet
nein
Idempotency
sp-alert-61dd5ea201fcbea5216fa9b7
Body SHA-256
d186f44c3b5f5326b5065d30
fahrrad-buecher-karten.de · slack blocked_missing_target

Zielreferenz: SAFERPAGE_SLACK_WEBHOOK_URL

konfiguriert
nein
gesendet
nein
Idempotency
sp-alert-61dd5ea201fcbea5216fa9b7
Body SHA-256
0cd0cc8e6af89f7d9ede8e5d
fahrrad-buecher-karten.de · teams blocked_missing_target

Zielreferenz: SAFERPAGE_TEAMS_WEBHOOK_URL

konfiguriert
nein
gesendet
nein
Idempotency
sp-alert-61dd5ea201fcbea5216fa9b7
Body SHA-256
5461399ad61fb5ec81bb1bf2
fahrrad-buecher-karten.de · local_file_sink queued_dry_run

Zielreferenz: SAFERPAGE_LOCAL_FILE_SINK_PATH

konfiguriert
ja
gesendet
nein
Idempotency
sp-alert-61dd5ea201fcbea5216fa9b7
Body SHA-256
d186f44c3b5f5326b5065d30

Runtime Controls

Signatur, Idempotency und Dry-run-Grenzen

Diese Kontrollen beschreiben, wann der Runner senden darf und welche Receiver-Prüfung erwartet wird.

Evidence
0External Attempts 0File-Sink Attempts 16Dry-run Queue jaNo-Secret 0/6Cred-Refs 8Manifest Controls
Run-Policy Versandbedingung

--execute-ready was passed, SAFERPAGE_ALERT_DISPATCH_APPROVED=yes and the channel target is configured

File-Sink
Writes sanitized JSONL summary rows only when dispatch is approved and --execute-ready is passed.
Manifest
öffnen
Receiver-Vertrag POST · monitoring.alert

HMAC-SHA256 over the compact JSON request body, formatted as sha256=<hex>.

Pflicht-Header
X-SaferPage-Event, X-SaferPage-Domain, X-SaferPage-Idempotency-Key
Idempotency
Receivers must deduplicate on X-SaferPage-Idempotency-Key and may compare body_sha256 for replay diagnostics.
SAFERPAGE_ALERT_DISPATCH_APPROVED missing

Explicit approval gate for productive alert delivery.

Referenz
dispatch_approval
Policy
Only env_ref and present flags are exported; never secret values, webhook URLs, recipients, target URLs or raw payloads.
SAFERPAGE_WEBHOOK_URL missing

Generic operator webhook target.

Referenz
generic_webhook_url
Policy
Only env_ref and present flags are exported; never secret values, webhook URLs, recipients, target URLs or raw payloads.
SAFERPAGE_WEBHOOK_SECRET missing

HMAC-SHA256 signing secret for generic webhook deliveries.

Referenz
generic_webhook_secret
Policy
Only env_ref and present flags are exported; never secret values, webhook URLs, recipients, target URLs or raw payloads.
SAFERPAGE_SLACK_WEBHOOK_URL missing

Slack incoming webhook target.

Referenz
slack_webhook_url
Policy
Only env_ref and present flags are exported; never secret values, webhook URLs, recipients, target URLs or raw payloads.
SAFERPAGE_TEAMS_WEBHOOK_URL missing

Microsoft Teams incoming webhook target.

Referenz
teams_webhook_url
Policy
Only env_ref and present flags are exported; never secret values, webhook URLs, recipients, target URLs or raw payloads.
SAFERPAGE_LOCAL_FILE_SINK_PATH missing

Optional override for sanitized local JSONL audit sink; default path is used when absent.

Referenz
local_file_sink_path
Policy
Only env_ref and present flags are exported; never secret values, webhook URLs, recipients, target URLs or raw payloads.

Aktivierung

Kontrollierte Go-Live-Sequenz

Feed-Credentials
Preflight-Sequenz Produktive Betreiber-Zielsysteme kontrolliert aktivieren, ohne Secret-Werte oder Empfaenger im oeffentlichen Nachweis offenzulegen.

Produktiver Versand wird erst aktiviert, wenn Testempfaenger, Signatur, Dedupe und Betreiberfreigabe dokumentiert sind.

Schritt 1
Zielsystem-Owner, Empfaenger, Kanaele und Zwecke festlegen.
Schritt 2
Secrets und Ziel-URLs in /etc/saferpage/alert-dispatch.env oder Secret Manager setzen.
Schritt 3
Ohne SAFERPAGE_ALERT_DISPATCH_APPROVED einen Dry-run ausfuehren und /alarme/dispatch-runner-json pruefen.
Schritt 4
HMAC-Signatur, Idempotency-Key, Body-SHA-256 und Zielsystem-Dedupe im Testempfaenger verifizieren.
Schritt 5
SAFERPAGE_ALERT_DISPATCH_APPROVED=yes erst nach dokumentierter Betreiberfreigabe setzen.
Schritt 6
Nach erstem produktiven Lauf sent_count, error_count und Zielsystem-Logs pruefen.
Stop-Bedingungen Versand pausieren

Diese Signale blockieren oder stoppen die produktive Zustellung.

Stop 1
sent_count groesser 0 ohne SAFERPAGE_ALERT_DISPATCH_APPROVED=yes und dokumentierte Betreiberfreigabe.
Stop 2
Oeffentliche Exports enthalten Ziel-URLs, API-Keys, Tokens, E-Mail-Empfaenger, Slack-/Teams-Webhook-URLs oder private Payloads.
Stop 3
Zielsystem meldet Duplikate trotz Idempotency-Key.
Stop 4
error_count groesser 0 oder wiederholte HTTP-/TLS-/Rate-Limit-Fehler.
Stop 5
Empfaenger oder Kanalzweck wurden ohne Datenschutz-/Security-Abnahme geaendert.