Skip to content

Notifications & Report Delivery

Fleet has an internal event bus. Platform events (a release published, repeated failed logins) and ENISA CRA Art.14 filings are emitted onto it, and a notification subscriber fans the notify-worthy ones out to the channels you configure. The same bus drives the dashboard’s live activity board, so a filing that emails your compliance team also lights up on screen.

Notifications are opt-in: if no channel is configured, the subscriber is not started and nothing is sent.

Configure channels with FLEET_NOTIFY__* environment variables. Every channel is a single authenticated HTTP POST with JSON — no extra services.

ChannelVariables
Email (Resend)FLEET_NOTIFY__RESEND_API_KEY, FLEET_NOTIFY__EMAIL_FROM, FLEET_NOTIFY__EMAIL_TO (optional FLEET_NOTIFY__RESEND_URL)
SlackFLEET_NOTIFY__SLACK_URL (incoming-webhook URL)
DiscordFLEET_NOTIFY__DISCORD_URL (webhook URL)
Generic webhookFLEET_NOTIFY__WEBHOOK_URL (optional FLEET_NOTIFY__WEBHOOK_AUTH_HEADER as Name: value)

Example (email via Resend):

Terminal window
export FLEET_NOTIFY__RESEND_API_KEY="re_xxx"
export FLEET_NOTIFY__EMAIL_FROM="fleet@yourco.example"
export FLEET_NOTIFY__EMAIL_TO="compliance@yourco.example"
EventDelivered?
Release published, license revoked, repeated failed logins, inbound webhookYes
ENISA Art.14 notification filed (a staged revision submitted)Yes
AI advisor / chat lifecycle eventsNo — dashboard-only (high-frequency; they would swamp a channel)

Delivery is at-most-once (the bus guarantee). Durable queuing and retry are a planned production-hardening step.

Filing a staged Art.14 revision emits a notification (above) so your team is alerted. Separately, fleet_enisa_export (MCP) — or the export path — delivers the form-ready document itself:

  • When an email or webhook channel is configured, Fleet delivers the document through it (the email carries the rendered notification; the webhook receives the structured document) and records an append-only export receipt.
  • When none is configured, Fleet records the receipt against a built-in stub.

ENISA’s Single Reporting Platform has no public submission API yet. When it ships, it slots in as one more delivery target — the rest of the pipeline (validation, carry-forward, chain-of-custody, receipts) is already in place. See ENISA Reporting.