Si gestionas varios modelos semánticos en Power BI, sabes lo tedioso que es entrar al servicio, buscar cada dataset y lanzar el refresco uno a uno. Este artículo documenta una herramienta que he montado para resolver exactamente eso: un único archivo HTML que muestra todos tus datasets, muestra su estado y te permite refrescarlos desde el navegador.
Qué hace la herramienta
- Lista todos los modelos semánticos de un workspace de Power BI
- Muestra el estado del último refresco (completado, error, sin datos)
- Permite lanzar el refresco de un modelo individual o de todos a la vez
- Monitoriza el progreso automáticamente cada 15 segundos
- Autenticación con tu cuenta Microsoft 365 mediante OAuth 2.0 PKCE — sin contraseñas almacenadas pero con la seguridad suficiente para que sea compliance
Todo en un único archivo .html.
Prerrequisitos
Antes de empezar necesitas:
- Un tenant de Microsoft 365 con Power BI Pro o Premium
- Una cuenta con permisos de Administrador Global o de Aplicación en Entra ID
- Un sitio donde alojar el HTML — recomiendo Netlify, que tiene plan gratuito
Paso 1 — Crear el App Registration en Entra ID
Este es el paso más crítico. Sin él, la autenticación no funciona.
- Ve a portal.azure.com → Entra ID → App registrations → New registration
- Nombre: el que quieras (ej.
Power BI Refresh Tool) - Supported account types:
Accounts in this organizational directory only (Single tenant) - Redirect URI: selecciona tipo Single-page application (SPA) y pon
http://localhostde momento - Pulsa Register
Una vez creado, ve a API permissions → Add a permission → Power BI Service → Delegated y añade:
Dataset.ReadWrite.AllWorkspace.Read.All
Luego pulsa «Grant admin consent for [tu tenant]» y confirma.
Antes de salir, copia estos dos valores — los necesitarás en el Paso 3:
- Application (client) ID
- Directory (tenant) ID
Paso 2 — Alojar el archivo HTML en Netlify
- Crea una cuenta en netlify.com
- En el panel principal, arrastra el archivo HTML directamente (Deploy manually)
- Netlify te asignará una URL del tipo
https://nombre-aleatorio.netlify.app
Con esa URL, vuelve al App Registration en Entra ID → Authentication → Single-page application y añade esa URL como Redirect URI (con la barra final si la tiene). Guarda.
Paso 3 — Configurar el archivo HTML
Abre el archivo con cualquier editor de texto (Notepad, VS Code) y localiza la sección CONFIG al inicio del código:

Edita los tres valores, guarda y vuelve a subir el archivo a Netlify (mismo drag & drop sobre la misma carpeta).
Opcional — Filtros por grupo
Si quieres organizar los modelos por departamento o proyecto, puedes descomentar el array GROUPS en el código:

El sistema detecta el grupo por el prefijo del nombre del modelo. Si tus datasets se llaman FIN_CierreMensual o FIN_Presupuesto, aparecerán automáticamente bajo el filtro «Finanzas».
Cómo funciona la autenticación
La herramienta usa OAuth 2.0 con flujo PKCE (Proof Key for Code Exchange), el estándar recomendado por Microsoft para aplicaciones SPA sin backend. En ningún momento se almacena ninguna contraseña ni token en servidores externos. El acceso es siempre bajo las credenciales del usuario que hace login.
Esto significa que cualquier persona de tu organización con los permisos correctos puede usar la herramienta desde su navegador, sin configuración adicional.

Estados
De un vistazo podrás averiguar el estado actual de los dataset, incluso los que haya dado error los vas a ver



Resultado final
Una vez configurado, abres la URL de Netlify, haces login con tu cuenta Microsoft y ves todos tus datasets con su estado. Un botón por modelo para refrescar individualmente, y otro para lanzar todos a la vez, sin tener que entrar en cada dataset de Power BI.
Descarga el archivo
→ Descargar el HTML