Skip to content

Security: skylerblue333/Python-Notification-Router

Security

SECURITY.md

Security model

Sky Notify treats notification destinations and payloads as untrusted input.

Controls in this release

  • webhook delivery requires HTTPS
  • webhook hostname must be explicitly allowlisted through NOTIFY_WEBHOOK_HOSTS
  • embedded URL credentials are rejected
  • redirects are not followed
  • JSON payloads are bounded to 64 KiB
  • optional bearer authentication uses constant-time comparison
  • durable idempotency keys reduce accidental duplicate submissions
  • external delivery is marked successful only after a 2xx provider response
  • retry budgets transition exhausted deliveries to dead_letter
  • the container runs as an unprivileged sky user
  • CI performs compile, lint, tests, dependency audit, and image checks

Explicit limitations

This service does not provide SSRF-proof IP-range filtering beyond the exact hostname allowlist, tenant isolation, message encryption at rest, distributed consensus, exactly-once external delivery, or compliance certification. Operators should place it behind authenticated network boundaries, manage secrets outside the repository, back up the SQLite database, and monitor dead-letter growth.

Do not include credentials or high-value secrets in notification payloads unless the deployment adds an appropriate encrypted storage and data-handling layer.

There aren't any published security advisories