Cosa fa
Una dashboard web che mostra in tempo reale lo stato di tutti i servizi Microsoft 365 del tenant — Exchange Online, Teams, SharePoint, Entra ID e altri — con gli incident attivi, la loro severità, durata e tutti gli aggiornamenti pubblicati da Microsoft. Pensata per sysadmin M365 che vogliono una vista operativa centralizzata senza aprire l’Admin Center.
Architettura
Browser (index.html)
│ fetch /api/GetServiceHealth?code=<key>
▼
Azure Function (PowerShell HTTP Trigger)
│ OAuth2 Client Credentials → access_token
▼
Microsoft Graph API
├── /admin/serviceAnnouncement/healthOverviews
└── /admin/serviceAnnouncement/issues
▼
JSON → Browser → rendering dashboard
Il backend è una Azure Function in PowerShell che fa da proxy autenticato verso Graph API. Il frontend è un singolo file HTML senza dipendenze npm o framework, deployato su Azure Static Web Apps (piano Free).
Funzionalità principali
- Griglia servizi con stato live (Operativo / Degradazione / Outage)
- Incident attivi con severità, classificazione (Incident / Advisory), durata e workload impattati
- Timeline aggiornamenti per ogni incident
- Ricerca e filtri per servizio, stato e classificazione
- Barra visiva dell’età di ogni incident (verde → rosso progressivo)
- Dark/Light mode con preferenza salvata in localStorage
- Skeleton loading durante il fetch dei dati
Stack tecnologico
- Azure Function (PowerShell 7.4) — proxy autenticato, OAuth2 Client Credentials flow
- Microsoft Graph API —
ServiceHealth.Read.All,ServiceMessage.Read.All - Azure Static Web Apps — hosting frontend con deploy automatico da GitHub Actions
- HTML/CSS/JS vanilla — zero dipendenze frontend
- Entra ID App Registration — autenticazione app-only senza utente interattivo