Salta ai contenuti

Connettore Notification

Il connettore Notification consegna payload come messaggi a canali esterni. Il corpo del messaggio è il payload serializzato in JSON oppure una stringa renderizzata da un text/template Go.

Tipo Connettore: MeddleNotification

Canali Supportati: slack, teams, email, microsoft365, webhook

  • channel (richiesto): Uno tra slack, teams, email, microsoft365, webhook
  • template: Stringa text/template Go opzionale. I campi del payload sono accessibili come {{ .field }}. Se vuota, il payload viene codificato in JSON.
  • webhookUrl: URL di destinazione (usato dal canale webhook)
  • slackConfig: Opzioni specifiche di Slack
  • teamsConfig: Opzioni specifiche di Teams
  • emailConfig: Opzioni di email SMTP
  • microsoft365Config: Opzioni Microsoft Graph API
{
"type": "MeddleNotification",
"config": {
"channel": "slack",
"template": "Allerta temperatura: {{ .temperature }}°C sul sensore {{ .sensor_id }}",
"slackConfig": {
"botToken": "xoxb-...",
"channel": "#alerts"
}
}
}

Campi slackConfig:

  • botToken (richiesto): Token OAuth dell’utente bot Slack
  • channel (richiesto): ID o nome del canale (es. #alerts)
{
"type": "MeddleNotification",
"config": {
"channel": "teams",
"template": "Macchina {{ .machine_id }} fermata. Stato: {{ .status }}",
"teamsConfig": {
"webhookUrl": "https://outlook.office.com/webhook/..."
}
}
}

Campi teamsConfig:

  • webhookUrl (richiesto): URL di webhook in ingresso configurato in Teams
{
"type": "MeddleNotification",
"config": {
"channel": "email",
"template": "Allerta dal sensore {{ .sensor_id }}: {{ .message }}",
"emailConfig": {
"smtpHost": "smtp.example.com",
"smtpPort": 587,
"from": "alerts@example.com",
"to": ["ops@example.com", "manager@example.com"],
"username": "alerts@example.com",
"password": "app-specific-password"
}
}
}

Campi emailConfig:

  • smtpHost (richiesto), smtpPort (richiesto)
  • from (richiesto, deve essere un’email valida)
  • to (richiesto, min 1 destinatario)
  • username, password: Autenticazione SMTP opzionale

Invia email tramite Microsoft Graph utilizzando credenziali client OAuth2. Richiede una registrazione di app Azure AD con il permesso applicazione Mail.Send (consenso amministratore).

{
"type": "MeddleNotification",
"config": {
"channel": "microsoft365",
"template": "Produzione interrotta sulla linea {{ .line_id }}",
"microsoft365Config": {
"tenantId": "00000000-0000-0000-0000-000000000000",
"clientId": "11111111-1111-1111-1111-111111111111",
"authMethod": "secret",
"clientSecret": "your-client-secret",
"fromAddress": "alerts@yourtenant.onmicrosoft.com",
"to": ["ops@yourtenant.onmicrosoft.com"],
"subject": "Allerta di Produzione",
"saveToSentItems": true
}
}
}

Campi microsoft365Config:

  • tenantId (richiesto), clientId (richiesto)
  • authMethod: secret (default) o certificate
  • clientSecret: Richiesto quando authMethod è secret
  • certificate: Richiesto quando authMethod è certificate. Fornisci o certificateFile + privateKeyFile (PEM) o pfxFile (+ opzionale pfxPassword).
  • fromAddress (richiesto, deve essere un’email valida corrispondente a una casella con licenza)
  • to (richiesto, min 1 destinatario)
  • subject: Oggetto dell’email (default Meddle Notification)
  • saveToSentItems: Quando true, il messaggio viene salvato negli Inviati della casella
{
"type": "MeddleNotification",
"config": {
"channel": "webhook",
"webhookUrl": "https://hooks.example.com/incoming",
"template": "{{ .machine_id }}: {{ .status }}"
}
}

Effettua POST di un corpo JSON { "message": "...", "data": { ...payload... } } a webhookUrl.

I template usano la sintassi text/template di Go. Pattern comuni:

Temperatura: {{ .temperature }}°C
{{ if gt .pressure 100.0 }}Pressione ALTA{{ end }}
Sensore {{ .sensor_id }} ha riportato {{ .status }} alle {{ .timestamp }}

Se non è configurato alcun template, l’intero payload viene codificato in JSON come messaggio.

  1. Notifiche operatore per violazioni di soglia
  2. Routing di incidenti ai canali di reperibilità tramite Slack o Teams
  3. Logging di audit tramite webhook a un SIEM o endpoint HTTP
  4. Allerte email aziendali con OAuth Microsoft 365 (nessuna password SMTP richiesta)
  • Usa template per mantenere i messaggi brevi, leggibili e azionabili
  • Posiziona Trigger o Rate Limiter a monte per evitare di inondare i canali
  • Per Microsoft 365, preferisci l’auth con certificato in produzione; ruota regolarmente i segreti
  • Usa un canale webhook quando invii a sistemi interni che non necessitano di un’integrazione provider specifica
  • Alert - Alerting con stato con durata e cooldown
  • Trigger - Gestisci notifiche su una condizione
  • Rate Limiter - Limita la frequenza delle notifiche