PortivoDocs · v2.0.0Complete handbookportivo.orgGitHub
Observability

Notifications and incidents

Confirmed switch/stack/power events with per-destination routing.

v2.0.0Source-backed

Destination types

  • Microsoft Teams / Power Automate.
  • Slack Incoming Webhook.
  • Discord Webhook.
  • Generic JSON Webhook.

Incident model

Background health detection creates a deduplicated incident after the configured confirmation threshold. Routing is then evaluated independently for each enabled destination using event subscriptions and Site/Group scope.

Delivery durability

Delivery is persisted per destination in a bounded outbox with independent retry/backoff. A failure in one integration does not block another. Recovery is sent only to destinations that successfully received the original incident and still subscribe to recovery.

Generic webhook security

Generic destinations must use public HTTPS endpoints. Localhost and private-address targets are rejected. Portivo 2.0.0 also blocks redirects and revalidates the destination to reduce SSRF risk.

History

The workspace provides searchable, filterable and paginated incident and delivery history while endpoint secrets remain masked.

Source-backed detail

Incident detection and durable delivery

A confirmed incident is created once, then independently routed to each enabled destination whose event subscriptions and Site/Group scope match. Delivery rows are persisted before network I/O, so one failing receiver does not block another.

Supported adapters include Microsoft Teams / Power Automate, Slack, Discord and Generic JSON. Receiver URLs are encrypted at rest and are not returned in clear text after save. Generic endpoints must use HTTPS and reject localhost, private, link-local and other non-public targets to reduce SSRF exposure.

Recovery semantics

If a switch recovers before an offline message is delivered, pending offline deliveries are cancelled. Recovery is sent only to destinations that successfully received the corresponding outage and still subscribe to recovery. Temporary failures use bounded retry; delivery acceptance does not prove a downstream workflow completed.