Connettore Notification
Panoramica
Sezione intitolata “Panoramica”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
Parametri di Configurazione
Sezione intitolata “Parametri di Configurazione”- channel (richiesto): Uno tra
slack,teams,email,microsoft365,webhook - template: Stringa
text/templateGo 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)
Microsoft Teams
Sezione intitolata “Microsoft Teams”{ "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
Email (SMTP)
Sezione intitolata “Email (SMTP)”{ "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
Microsoft 365 (Graph API)
Sezione intitolata “Microsoft 365 (Graph API)”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) ocertificate - clientSecret: Richiesto quando
authMethodèsecret - certificate: Richiesto quando
authMethodècertificate. Fornisci ocertificateFile+privateKeyFile(PEM) opfxFile(+ opzionalepfxPassword). - 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
Webhook
Sezione intitolata “Webhook”{ "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.
Template
Sezione intitolata “Template”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.
Casi d’Uso
Sezione intitolata “Casi d’Uso”- Notifiche operatore per violazioni di soglia
- Routing di incidenti ai canali di reperibilità tramite Slack o Teams
- Logging di audit tramite webhook a un SIEM o endpoint HTTP
- Allerte email aziendali con OAuth Microsoft 365 (nessuna password SMTP richiesta)
Migliori Pratiche
Sezione intitolata “Migliori Pratiche”- 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
Connettori Correlati
Sezione intitolata “Connettori Correlati”- Alert - Alerting con stato con durata e cooldown
- Trigger - Gestisci notifiche su una condizione
- Rate Limiter - Limita la frequenza delle notifiche