All projects
Completed Featured

Service Health Dashboard

Dashboard web per il monitoraggio in tempo reale dello stato dei servizi Microsoft 365, incident attivi e degradazioni operative — senza accedere manualmente all'Admin Center.

Started Completed
PowerShellGraph APIAzure FunctionsAzure Static Web AppsHTML/JS

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 APIServiceHealth.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